はじめに
Spring Boot で Web API を作るとき、
最初に出会うのが @GetMapping と @PostMapping です。
「GET と POST の違いって何?」
「どっちを使えばいいの?」
「パラメータはどう受け取るの?」
そんな疑問を持つ方も多いと思います。
この記事では、@GetMapping / @PostMapping の基本を
やさしく・実務で役立つ形 で整理していきます。
まずはコードを見て、そこから少しずつ理解していきましょう。
まずはコードを確認
@GetMapping の例(データ取得)
@GetMapping("/hello")
public String hello() {
return "Hello World";
}@PostMapping の例(データ登録)
@PostMapping("/users")
public String createUser(@RequestBody UserRequest request) {
return "created";
}このように、
GET は取得、POST は作成
というのが基本的な使い分けです。
@GetMapping の基本をやさしく理解する
何をするためのもの?
データを取得するための HTTP メソッド に対応しています。
- URL にアクセスしてデータを取得
- パラメータは URL に付ける(クエリ or パス)
- 副作用(データ変更)がないのが理想
パラメータの受け取り方
パスパラメータ
@GetMapping("/users/{id}")
public String getUser(@PathVariable Long id) {
return "id: " + id;
}クエリパラメータ
@GetMapping("/search")
public String search(@RequestParam String keyword) {
return "keyword: " + keyword;
}GET は URL で情報を渡す のが特徴です。
@PostMapping の基本をやさしく理解する
何をするためのもの?
データを作成・登録するための HTTP メソッド に対応しています。
- 新規作成
- 登録
- 送信
- フォームの送信
など、何かを“作る”ときに使います。
JSON を受け取るときは @RequestBody
@PostMapping("/users")
public String createUser(@RequestBody UserRequest request) {
return "created";
}POST は リクエストボディにデータを入れる のが特徴です。
GET と POST の違いを整理
| 項目 | GET | POST |
|---|---|---|
| 用途 | データ取得 | データ作成 |
| パラメータ | URL(クエリ / パス) | リクエストボディ |
| キャッシュ | されることがある | 基本されない |
| 副作用 | ないのが理想 | ある(登録・更新など) |
| 使い分け | 読む | 書く |
この表だけで、実務の 8 割は理解できます。
実務でよくある使い分け
一覧取得 → GET
@GetMapping("/users")新規登録 → POST
@PostMapping("/users")検索 → GET
@GetMapping("/search")ログイン → POST
(パスワードを URL に載せないため)
あわせて知っておきたいポイント
@RequestBody は POST だけではない
PUT や PATCH でも使えます。
GET にボディを付けない
仕様上は可能ですが、実務では避けます。
@RestController と相性が良い
戻り値が JSON になるため、API 開発がとても楽になります。
Validation と組み合わせると強力
public String create(@Valid @RequestBody UserRequest request)入力チェックが自動で動きます。
使うときに気をつけたいこと
GET でデータを変更しない
副作用のある処理は POST / PUT / DELETE を使います。
パスパラメータとクエリパラメータを混同しない
- リソースを特定 → パス
- 条件を指定 → クエリ
POST の戻り値は ResponseEntity が便利
ステータスコードを返せるため、API の品質が上がります。
まとめ
@GetMapping / @PostMapping は、
「データ取得(GET)とデータ作成(POST)を扱うための基本アノテーション」
です。
- GET → URL でパラメータを渡す
- POST → ボディでデータを渡す
- 使い分けは「読むか書くか」
- DTO や Validation と組み合わせると強力
難しく聞こえますが、
「GET は読む、POST は書く」
と理解できれば十分です。

@GetMapping と @PostMapping を理解すると、
API の設計が一気にクリアになります。
Controller のコードも読みやすくなり、
開発がとてもスムーズになります。
あなたの開発が、今日より少しだけ楽になりますように。

GET は読む、POST は書く…シンプルでかわいいね。

コメント