LoginSignup
4
3

More than 1 year has passed since last update.

【Spring Boot】GET・POSTの実装

Posted at

最近、仕事で Spring Boot を使っているので、勉強した内容について書いていきます。

開発環境

Eclipse(日本語化プロジェクト)の最新のJava版をダウンロードして使用します。
Spring Bootを使うとなると、Eclipse Spring Tool Suite (STS)が必要になりますが、Pleiades All in One Eclipseをダウンロードすれば、既に使えるような状態になっているかと思います。

プロジェクトの作成

eclipseで workspace を開きます。
新規プロジェクト作成ウィンドウを開き、「Spring Boot スターター・プロジェクト」を作成します。
これにより、デフォルトのSpring boot プロジェクトが作成されたかと思います。
cff108b4-dc20-9697-06f4-c749e9ee936f.png

コーディング

プロジェクトは作成できたので、次は Controllerを作成します。
一番最初に「Controllerを作成する」と聞いたときは、何のことを言っているんだ?と思いましたが、Spring boot では、アノテーションの@Controller@RestControllerが設定されたクラスを作成することが、「Controllerを作成する」ということになるそうです。
@Controllerでは@ResponseBodyを設定する必要がありますが、@RestControllerはそれが必要ないので、今回は@RestControllerを使って書いていきます。
(アノテーションとか、@Controllerの説明は、実装には影響しないかと思われるので、今回しません。機会があればそのあたりを書こうと思います。)

GETメソッドには@GetMappingを設定し、POSTメソッドには@PostMappingを設定します。
説明文でごちゃごちゃ書いてもよくわからないかと思いますので、作成したコードを下記に記載しました。

ControllerA.java
package com.example.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

/**
 * http://localhost:8080/controller で呼び出せる
 */
@RestController
@RequestMapping("/controller")
public class ControllerA {

    /**
     * GETメソッド
     * http://localhost:8080/controller/get_method で呼び出せる
     * 
     * @param param1 URL リクエストで ?get_param=~ で受信できるパラメータ
     */
    @GetMapping("/get_method")
    public String getA(@RequestParam("get_param") String param1) {
        // テスト用のURL
        // http://localhost:8080/controller/get_method?get_param=test
        return "get メソッドのレスポンス_param->" + param1;
    }

    /**
     * POSTメソッド
     * 
     * @param param1 URL リクエストで ?post_param=~ で送信できるパラメータ
     */
    @PostMapping("/post_method")
    public String postMethod(@RequestParam("post_param") String param1) {
        // テスト用のURL
        // http://localhost:8080/controller/post_method?post_param=test
        return "POST メソッドのレスポンス_param->" + param1;
    }
}

実行

プロジェクトの実行ですが、右クリックし、「実行」→「Spring Boot アプリケーション」で実行できます。
spring boot 実行.png

・GETリクエスト

コード内のコメントでも記載していますが、プロジェクトを実行した状態で、http://localhost:8080/controller/get_method?get_param=test をブラウザーで開くことで呼び出せます。
呼び出した結果は下記の様になります。
GET_test.png

・POSTリクエスト

POST用に下記のコードを書きました。

post_test.html
<!DOCTYPE html>
<html lang="ja">
    <form method="post" action="http://localhost:8080/controller/post_method">
        <input type="text" name="post_param" value="default">
        <input type="submit" value="post送信">
    </form>
</html>

上記のコードを貼り付けた htmlのコードを webブラウザーで表示すると下記の様になります。
image.png
「post送信」押下の結果は下記の様になります。
image.png
GETの場合と大差はないですが、POST用の結果として表示されていることがわかるかと思います。

作成したGithubリポジトリ

今回作成した内容は、下記に格納しておきました。
https://github.com/NagaJun1/test_spring_boot

終わりに

Qiitaを書くのは深夜に限る!
というか、深夜テンションじゃないと書けない。
日中に書くコツを教えてください(笑)

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3