2
2

SpringBootでのリクエストパラメータの受け取り方

Last updated at Posted at 2023-11-21

リクエストパラメータを受け取る際の備忘録。
SpringBootでリクエストパラメータを受け取るには、以下の3つのアノテーションを使い分ける。

  • パスパラメータ
  • クエリパラメータ
  • リクエストボディ
    それぞれの使い方を以下にまとめる。

パスパラメータ
@PathVariable

クエリパラメータ
@RequestParam

リクエストボディ
@RequestBody

Spring Boot Version

3.1.1

用途、具体例

@￰PathVariable

URLの一部をメソッドの引数として受け取るために使用する。

https://example.com/products/{productId}
@GetMapping("/products/{productId}")
public Product getProductDetails(@PathVariable Long productId) {
    // productIdを使用して製品詳細を取得する処理...
}

@￰RequestParam

クエリパラメータやフォームデータをコントローラメソッドの引数として受け取るために使用される。

@GetMapping("/products")
public Product getProducts(@RequestParam String param1, @RequestParam String param2) {
    // クエリパラメータの値を使用して処理...
}
@PostMapping("/products")
public String createProduct(@RequestParam String name, @RequestParam String authorName) {
    // フォームデータを使用して処理...
}

https://example.com/products?param1=value1&param2=value2のようなURLで、param1やparam2のクエリパラメータの値を取得する際に使用する。

@￰RequestBody

HTTPリクエストのボディ部分からデータを受け取るために使用される。JSON形式で受け取るのが一般的である。

@PostMapping("/products")
public String createProduct(@RequestBody ProductForm productFormData) {
    // productFormDataを使用して処理...
}
@Data
public class ProductForm {

    /**
     * 製品名
     */
    private String name;

    /**
     * 製品著者
     */
    private String authorName;

}

@￰RequestBodyを使うと以下の利点などがある。

  • JSONなどの形式で送信されるデータを受け取り、Javaオブジェクトに変換してコントローラーメソッドに渡すことができる
  • formクラスにパラメータを定義するのでリクエスト項目が増えてもコントローラーがスッキリする
2
2
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
2
2