今パートの目標
前回はapiとfrontのソースコードをgit管理し、githubにプッシュするところまで実施しました。
今回はリクエストを送ると「HelloWorld」というテキストをレスポンスとして返すHelloControllerの作成をしていきたいとおもます。
環境について
- Next.js 14.2.3
- Typescript 5
- SpringBoot 3.2.0
- java 17
- git 2.43.0
- macOS Sonoma 14.1.1
- Docker Desktop 4.18.0
作業用ブランチを作成する
ターミナルで下記コマンドを実行します。
share-favplace-api % git fetch
share-favplace-api % git checkout -b develop
share-favplace-api % git checkout -b develop_20231226_responseToFront
HelloControllerを作成する
Httpリクエストを受け取り”Hello World”という文字列を返す、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リクエストを送信するなどができます。
SpringBootを起動する
リクエストを送信する前に、リクエストを受け取れるように下記コマンドでSpringBootのサーバーを起動しておきましょう。
share-favplace-api % docker-compose up -d
Signupする
上記サイトからアカウントを作成し、Signupしてください。
リクエストを作成する
Signupすると以下のような画面になると思います。
※右上の歯車から、「Settings」→「General」→「Language」から日本語に変更できます。
左のサイドバーから「ワークスペース」→「ワークスペースを作成」を押下し、「名前」の記入と「誰が使用するか」を選択してワークスペースを作成します。
「➕」ボタンを押して新しいリクエストタブを開き、下記のように入力します。
- リクエストタイプ: GET
- リクエストパス: http://localhost:8080/api/v1/hello
リクエストを送信する
送信ボタンを押下します
レスポンスに「HelloWorld!!!!」が返ってきたら成功です。
まとめ
以上で「HelloWorld!!!!」をレスポンスとして返すAPIを作成することができました。
PostmanはAPI開発をする上で有用なツールなのでどんどん使っていきましょう。
次回はフロントエンドからAPIに向けてリクエストを送信するをやっていきたいと思います。
コメント