1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

RequestParamとRequestBodyの違い

Posted at

1.はじめに

webアプリを開発している中で、RequestParamとRequestBodyを使用する機会があったのですがこの2つの違いって何かという疑問をもったため記事を書いていこうと思います。

2.RequestParamとRequestBody

まずはそれぞれがどういう役割をもつかを理解していきます。

~RequestParam~
HTTPリクエストのクエリパラメータやURLパスから特定の値を取得します

例えば、/users?id=123 というリクエストURLから、クエリパラメータ id=123 を取り出す場合に使われます

@GetMapping("/users")
public String getUserById(@RequestParam("id") int id) {
    return "User ID: " + id;
}

この例では、URL /users?id=123 にアクセスすると、id パラメータが取得されて "User ID: 123" が返されます。

~RequestBody~
HTTPリクエストのボディ部分に含まれるデータをサーバー側で受け取るために使用

例えば、JSONデータを受け取る場合のコードは次のようになります。

@PostMapping("/createUser")
public String createUser(@RequestBody User user) {
    // Userオブジェクトにリクエストボディのデータがマッピングされる
    return "User created: " + user.getName();
}
{
  "name": "John",
  "age": 30
}

@RequestBody で送信される JSON データが User クラスに対応するためには、User クラスのフィールドが JSON データのキー(プロパティ名)と一致している必要があります

クライアントは、通常、POSTリクエストを使用してデータをボディに含めて送信します。例えば、JavaScriptのfetch関数やPostmanなどのツールから送信できます。

3.RequestParamとRequestBodyの違い

@RequestParam
データソースHTTPリクエストのクエリパラメータやフォームデータ
用途簡単なデータ検索条件を取得時に使用
@RequestBody
データソースHTTPリクエストのボディ部分
用途JSONなどの複雑なオブジェクトデータを取得する場合に使用

簡単にまとめると、@RequestParamはURLやフォームから、@RequestBodyはリクエストボディからデータを取得するということです。

4.まとめ

違いを理解できたので、次からは用途にわかえて使用していければと思います。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?