Springboot3のRESTAPIでHelloWorldを返すコントローラーを作成する
はじめに
こちらに移行しました🙇
バックエンドにSpringBoot3(REST API)フロントエンドにReactを使用してSNS風のWebアプリケーションを作っていきます。
勉強も兼ねて記録に残したいと思いますので誰かの役に立てば嬉しいです😊
今パートの目標
前回はapiとfrontのソースコードをgit管理し、githubにプッシュするところまで実施しました。
今回はリクエストを送ると「HelloWorld」というテキストをレスポンスとして返すHelloControllerの作成をしていきたいとおもます。
環境について
- react 18.2.0
- Typescript 4.9.5
- SpringBoot 3.2.0
- java 17
- git 2.43.0
- macOS Sonoma 14.1.1
- Docker Desktop 4.18.0
作業用ブランチを作成する
share-favplace-front % git fetch
share-favplace-front % git checkout -b develop
share-favplace-front % git checkout -b develop_20231226_responseToFront
HelloControllerを作成する
controllerパッケージを作成する
以下階層にcontrollerパッケージを作成します。
- src
└ main
└ java
└ {パッケージ名}
└ controller
HelloControllerを作成する
先ほど作成したcontrollerパッケージにHelloController.javaを作成します。
- src
└ main
└ java
└ {パッケージ名}
└ controller
└ HelloController.java
HelloController.javaを編集する
package com.pandaman.sharefavplaceapi.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/api/v1/hello")
public String getHello() {
return "HelloWorld!!!!";
}
}
コードについて説明していきます
@RestController
@Controllerアノテーションと@ResponseBodyアノテーションを付与するのと同じ意味です。
つまり、このクラスはコントローラークラスであり、クラス内のリクエストマッピングアノテーション(@GetMapping等)が付与されたメソッドの戻り値を Web レスポンスの本文にバインドすることを示すアノテーションです。
REST APIではなく、テンプレートエンジンなどを使用する場合は@Controllerを付与します。
@GetMapping
HTTP GET リクエストを受け取った場合、付与したメソッドを実行するということを示すアノテーションです。
GETリクエストのパスの指定は以下のように行います。
@GetMapping("/api/v1/hello")
他にも以下のようなアノテーションがあります。
| HTTP メソッド | アノテーション |
| POST | @PostMapping |
| PUT | @PutMapping |
| DELETE | @DeleteMapping |
補足
@RequestMapping
@RequestMapping("/hoge")
public class HogeClass {
}
上記のようにクラスにRequestMappingアノテーションを付与することで、クラス内で共通のHTTPリクエストのパスを指定することができます。
つまり、"/api/v1"は本アプリの全てのパスの前につくので、以下のように書き換えることができます。
package com.pandaman.sharefavplaceapi.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/v1")
public class HelloController {
@GetMapping("hello")
public String getHello() {
return "HelloWorld!!!!";
}
}
リクエストを送信する
作成したコントローラーが正常に動作するか確認します。
今回はPostmanを使用して確認していきます。PostmanとはAPIのテストと開発を支援するツールでHTTPリクエストを送信するなどができます。
手順
Signupする
上記サイトからまず、アカウントを作成し、Signupしてください。
リクエスト作成する
Signupすると以下のような画面になると思います。
※右上の歯車から、「Settings」→「General」→「Language」から日本語に変更できます。
左のサイドバーから「ワークスペース」→「ワークスペースを作成」を押下し、「名前」の記入と「誰が使用するか」を選択してワークスペースを作成します。
「➕」ボタンを押して新しいリクエストタブを開き、下記のように入力します。
- リクエストタイプ: GET
- リクエストパス: http://localhost:8080/api/v1/hello
リクエストを送信する
送信ボタンを押下します
レスポンスに「HelloWorld!!!!」が返ってきたら成功です。
まとめ
以上で「HelloWorld!!!!」をレスポンスとして返すAPIを作成することができました。
PostmanはAPI開発をする上で有用なツールなのでどんどん使っていきましょう。
次回はフロントエンドからAPIに向けてリクエストを送信するをやっていきたいと思います。
Discussion