【Spring Boot】@GetMapping / @PostMapping の基本をやさしく解説

Java入門・実践
スポンサーリンク
スポンサーリンク

はじめに

Spring Boot で Web API を作るとき、
最初に出会うのが @GetMapping@PostMapping です。

「GET と POST の違いって何?」
「どっちを使えばいいの?」
「パラメータはどう受け取るの?」

そんな疑問を持つ方も多いと思います。

この記事では、@GetMapping / @PostMapping の基本を
やさしく・実務で役立つ形 で整理していきます。

まずはコードを見て、そこから少しずつ理解していきましょう。

まずはコードを確認

@GetMapping の例(データ取得)

Java
@GetMapping("/hello")
public String hello() {
    return "Hello World";
}

@PostMapping の例(データ登録)

Java
@PostMapping("/users")
public String createUser(@RequestBody UserRequest request) {
    return "created";
}

このように、
GET は取得、POST は作成
というのが基本的な使い分けです。

@GetMapping の基本をやさしく理解する

何をするためのもの?

データを取得するための HTTP メソッド に対応しています。

  • URL にアクセスしてデータを取得
  • パラメータは URL に付ける(クエリ or パス)
  • 副作用(データ変更)がないのが理想

パラメータの受け取り方

パスパラメータ

Java
@GetMapping("/users/{id}")
public String getUser(@PathVariable Long id) {
    return "id: " + id;
}

クエリパラメータ

Java
@GetMapping("/search")
public String search(@RequestParam String keyword) {
    return "keyword: " + keyword;
}

GET は URL で情報を渡す のが特徴です。

@PostMapping の基本をやさしく理解する

何をするためのもの?

データを作成・登録するための HTTP メソッド に対応しています。

  • 新規作成
  • 登録
  • 送信
  • フォームの送信

など、何かを“作る”ときに使います。

JSON を受け取るときは @RequestBody

Java
@PostMapping("/users")
public String createUser(@RequestBody UserRequest request) {
    return "created";
}

POST は リクエストボディにデータを入れる のが特徴です。

GET と POST の違いを整理

項目GETPOST
用途データ取得データ作成
パラメータURL(クエリ / パス)リクエストボディ
キャッシュされることがある基本されない
副作用ないのが理想ある(登録・更新など)
使い分け読む書く

この表だけで、実務の 8 割は理解できます。

実務でよくある使い分け

一覧取得 → GET

Java
@GetMapping("/users")

新規登録 → POST

Java
@PostMapping("/users")

検索 → GET

Java
@GetMapping("/search")

ログイン → POST

(パスワードを URL に載せないため)

あわせて知っておきたいポイント

@RequestBody は POST だけではない

PUT や PATCH でも使えます。

GET にボディを付けない

仕様上は可能ですが、実務では避けます。

@RestController と相性が良い

戻り値が JSON になるため、API 開発がとても楽になります。

Validation と組み合わせると強力

Java
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 は書く」
と理解できれば十分です。


decopon
decopon

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

moco
moco

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

コメント

タイトルとURLをコピーしました