はじめに
この記事は自分の学習用、備忘録として書いてるものです。
もし内容に間違いなどがあればご指摘ください。
対象読者
- プログラミングを始めたばかりの初学者
- REST APIという言葉を聞いたことはあるが触ったことがない方
- Postmanを使ってみたい方
この記事では、Spring Boot で作られたシンプルなREST APIをPostmanで操作します。
最終的に、以下の2つのことができるようになることを目標とします。
- Postman から GETリクエスト を送り、APIのレスポンスを確認する
- Postman から POSTリクエスト を送り、リクエストボディ付きでデータを送受信する
| 用語 | 意味 |
|---|---|
| REST API | Webサービスとやり取りするためのルールに基づいたAPI |
| HTTPメソッド | リクエストの「目的」を表す種別(GET/POST/PUT/DELETEなど) |
| GET | サーバーからデータを「取得する」メソッド |
| POST | サーバーにデータを「送信する・作成する」メソッド |
| エンドポイント | APIへのアクセス先URL(例: /hello-rest) |
| リクエスト | クライアントがサーバーに送る問い合わせ |
| レスポンス | サーバーがクライアントに返す回答 |
| JSON | データのやり取りに使うテキスト形式(例: {"key": "value"}) |
| リクエストボディ | POSTなどのリクエスト時にデータを入れる「荷物」部分 |
| Content-Type | 送信データの形式を伝えるヘッダー(application/json など) |
| ステータスコード | レスポンスの結果を表す3桁の数字(200=成功、415=エラーなど) |
今回使うプロジェクトの確認
プロジェクト構成
RestSample/
├── src/
│ └── main/
│ ├── java/com/example/rest/
│ │ ├── RestSampleApplication.java // アプリの起動ポイント
│ │ └── controller/
│ │ └── HelloController.java // APIの処理を書くファイル
│ └── resources/
│ └── application.properties // 設定ファイル
└── pom.xml // 依存ライブラリの定義
主要技術
- Spring Boot 3.5: JavaのWebアプリケーションフレームワーク
- Java 21: プログラミング言語
- Maven: ビルドツール(ライブラリ管理など)
APIの処理を書くファイルであるHelloContollerの作成
今回は/hello-restでGETリクエストを送り、Mapの中のJSONデータが返ってくることを確認する
package com.example.rest.comtroller;
import java.util.Map;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloContoller {
@GetMapping("/hello-rest")
public Map<String, Object> helloRest(){
Map<String, Object> ret = Map.of(
"message", "HelloRest","section", 3);
return ret;
}
}
Postmanのインストール
インストール手順
- Postmanの公式ダウンロードページにアクセスします
- お使いのOSに合ったインストーラをダウンロードします
- インストーラを実行します
- 起動後、「Skip and go to the app」 をクリックしてアカウントなしでも使えます
Postmanでコレクションの作成
Step 1: PostmanでGETリクエストを送る
手順
1. 新しいリクエストを作成する
2. メソッドとURLを設定する
- メソッドが GET になっていることを確認(デフォルトはGETなので変更不要)
- URL欄に以下を入力
http://localhost:8080/hello-rest
3. Sendをクリックする
Status: 200 OK(`200 OK` はリクエスト成功を意味するステータスコード)
Postmanのメリット: ブラウザのURLバーからもGETリクエストは送れるが、Postmanを使うとステータスコードやヘッダーが見やすく表示される。
Step 2: POSTエンドポイントのコードを確認する
今度は元々書いたHelloController.javaにPOST /hello-rest` を追加してみる
package com.example.rest.controller;
import java.util.Map;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping; // 追加
import org.springframework.web.bind.annotation.RequestBody; // 追加
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
// ---- 既存のGETエンドポイント ----
@GetMapping("/hello-rest")
public Map<String, Object> helloRest() {
Map<String, Object> ret = Map.of(
"message", "Hello, REST !",
"section", 3
);
return ret;
}
// ---- 追加したPOSTエンドポイント ----
@PostMapping("/hello-rest")
public Map<String, Object> helloRestPost(@RequestBody HelloRequest request) {
String name = (request.name() != null && !request.name().isBlank())
? request.name()
: "名無し";
Map<String, Object> ret = Map.of(
"message", "Hello, " + name + "さん!",
"section", 3
);
return ret;
}
// ---- リクエストボディのデータ構造 ----
record HelloRequest(String name) {}
}
1. 新しいリクエストを作成する
2. メソッドとURLを設定する
- メソッドが Post になっていることを確認
http://localhost:8080/hello-rest
3. Bodyを設定する(ここがGETとの大きな違い)
- [Body] タブをクリック
- [raw] ラジオボタンをクリック
- 右端のドロップダウンを [JSON] に変更
- この操作で
Content-Type: application/jsonヘッダーが自動的に設定される
- この操作で
- テキストエリアに以下を入力:
{
"name": "太郎"
}
4. Sendをクリックする
レスポンスの内容を確認して正しくPOSTリクエストが送られたかを確認する
ステータスは200かどうか
コントローラーで指定された内容かどうか(送った name がレスポンスの message に反映されているかどうか)
よく見るステータスコード
| ステータスコード | 意味 | よくある原因 |
|---|---|---|
200 OK |
成功 | - |
400 Bad Request |
リクエストの形式が不正 | JSONの構文ミス |
404 Not Found |
URLが存在しない | URLの打ち間違い |
415 Unsupported Media Type |
データ形式が非対応 | Content-Typeの指定漏れ |
500 Internal Server Error |
サーバー内部エラー | プログラムのバグ |
GETとPOSTの違い まとめ
| 比較項目 | GET | POST |
|---|---|---|
| 主な用途 | データを取得する | データを送信・作成する |
| リクエストボディ | なし | あり(JSON等) |
| Content-Type | 不要 | 必要(application/json 等) |
| URLへのパラメータ | クエリパラメータで渡せる | Bodyに含める |
| ブラウザで試せるか | URLバーでOK | 通常は不可(Postmanが必要) |
| Postman設定 | メソッドをGETに設定するだけ | メソッド変更 + Body設定が必要 |
| 用途の例 | ページ表示、一覧取得 | ログイン、フォーム送信、データ登録 |
まとめ
今回学んだこと
- REST APIは「URL + HTTPメソッド」の組み合わせでサーバーの機能を呼び出す仕組み
- GETはデータを「取得」、POSTはデータを「送信」するためのメソッド
- 同じURLでもHTTPメソッドで動作が変わるのがREST APIの核心
- Postmanを使うとブラウザでは難しいPOSTリクエストも簡単に送れる
- POSTでは Body に JSON を入れて、Content-Type を
application/jsonに設定する - ステータスコードでリクエストの成否と原因を確認できる







