REST APIの主要なHTTPメソッド(GET, POST, PUT, DELETE)を初心者向けにわかりやすく解説!
新人
「REST APIってよく聞きますけど、具体的に何なんでしょうか?」
先輩
「REST APIは、Webシステム同士がデータをやりとりするための基本的な仕組みだよ。特にHTTPメソッドを使って操作するのが特徴だね。」
新人
「操作って、どんなことができるんですか?」
先輩
「GETやPOSTなどのHTTPメソッドを使って、データの取得・作成・更新・削除ができるんだ。まずはREST APIの基本から見ていこう。」
1. REST APIとは何か?
REST API(レスト エーピーアイ)は、Representational State Transferの略で、Web上の資源(リソース)にアクセスして操作するための設計スタイルです。特にHTTPというプロトコルを使って、サーバーとクライアントがデータをやりとりする方法として広く使われています。
たとえば、書籍情報を管理するWebアプリでは、クライアントが「本の一覧を取得したい」「新しい本を追加したい」といった操作を、REST API経由でサーバーにリクエストします。
REST APIでは、次のような特徴があります:
- HTTPメソッド(GET, POST, PUT, DELETE)を使って操作する
- URL(エンドポイント)でリソースを指定する
- JSON形式でデータを送受信することが多い
Spring Frameworkを使うことで、@Controllerを使ってこのようなREST APIを簡単に構築できます。
2. HTTPメソッドの役割とは?
REST APIでは、HTTPメソッドを使ってリソースを操作します。それぞれのメソッドには明確な意味と使い方があります。以下に基本となる4つのメソッドを紹介します。
■ GETメソッド:データの取得
GETメソッドは、指定されたリソースの情報を取得するために使います。たとえば「本の一覧を表示する」ような処理です。
Springでは以下のように記述します。
@Controller
public class BookController {
@GetMapping("/books")
@ResponseBody
public List<String> getBooks() {
List<String> books = new ArrayList<>();
books.add("Spring入門");
books.add("Javaの基礎");
return books;
}
}
■ POSTメソッド:新しいデータの作成
POSTメソッドは、新しいリソースをサーバー側に登録するために使います。たとえば、「新しい本を追加する」ときなどです。
以下は、SpringでPOSTリクエストを受け付ける例です。
@Controller
public class BookController {
@PostMapping("/books")
@ResponseBody
public String addBook(@RequestParam String title) {
return title + " を追加しました";
}
}
■ PUTメソッド:既存データの更新
PUTメソッドは、既存のリソースを更新するために使います。例えば「特定の本のタイトルを変更する」といった操作です。
PUTメソッドの受け取り方は、Springでは少し工夫が必要です。通常は
3. GETメソッドの使い方(データの取得)
GETメソッドは、REST APIにおいて最も基本的でよく使われるHTTPメソッドです。「取得」の意味を持ち、サーバーから必要な情報を引き出すために使用されます。たとえば、商品一覧を表示したり、ユーザー情報を確認したりする場面で活躍します。
GETメソッドは安全で、何度アクセスしてもデータを変更しないという特徴があります。そのため、操作によってサーバー上のデータが変化することはありません。
Spring Frameworkでは、@GetMappingアノテーションを使ってGETリクエストを受け取る処理を簡単に定義できます。以下は、書籍の一覧を取得するサンプルです。
@Controller
public class BookController {
@GetMapping("/books")
@ResponseBody
public List<String> getBookList() {
List<String> books = new ArrayList<>();
books.add("Javaプログラミング入門");
books.add("Springフレームワーク徹底解説");
return books;
}
}
この例では、/booksというエンドポイントにGETリクエストが送られると、文字列のリストを返します。@ResponseBodyを付けることで、戻り値がHTTPレスポンスの本文として出力され、クライアント側でそのままJSONとして受け取ることができます。
実際にリクエストを送ると、以下のようなJSON形式のデータが返ってきます。
["Javaプログラミング入門","Springフレームワーク徹底解説"]
このように、GETメソッドはとてもシンプルで直感的に使えるため、REST APIの導入には最適な入り口となります。
4. POSTメソッドの使い方(新規データの作成)
POSTメソッドは、サーバーに新しいデータを送信して登録するために使用されます。「作成」の意味を持ち、新規登録やデータ追加の処理で使われることが多いです。
たとえば、新しい書籍を追加したい場合に、クライアントからPOSTリクエストを送ってサーバーに情報を渡します。POSTはGETとは異なり、実行するたびにサーバー側の状態が変化する特徴を持っています。
Springでは、POSTメソッドを受け取る処理を@PostMappingアノテーションで定義します。以下にサンプルコードを示します。
@Controller
public class BookController {
@PostMapping("/books")
@ResponseBody
public String createBook(@RequestParam String title) {
// 通常はここでデータベースに保存する処理を書く
return title + " を登録しました。";
}
}
@RequestParamは、リクエストのパラメータから値を受け取るためのアノテーションです。この例では、titleというパラメータを取得して、新しい書籍名として処理を行っています。
実際には、フォームから送信されたデータや、JavaScriptのfetch APIなどを使ってPOSTリクエストを送ることになります。以下は、HTML側でフォームを使ってPOSTリクエストを送る簡単な例です。
<form action="/books" method="post">
<label for="title">書籍名:</label>
<input type="text" name="title" id="title">
<button type="submit">登録</button>
</form>
このフォームでは、ユーザーが書籍名を入力して送信すると、/booksというエンドポイントに対してPOSTリクエストが送られます。そして、サーバー側のcreateBookメソッドでその値を受け取り、処理が行われます。
また、JavaScriptのfetch APIを使えば、以下のようにJSON形式のデータをPOSTすることもできます。
<script>
fetch("/books", {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded"
},
body: "title=Springセキュリティ入門"
});
</script>
このように、POSTメソッドを使うことで、新しいデータを簡単に登録することが可能です。実際の開発現場でも頻繁に登場するため、使い方をしっかりと理解しておくことが重要です。
GETとPOSTの違いを明確に理解することで、REST APIの構成や設計にも自信を持って取り組むことができるようになります。
次回は、PUTメソッドとDELETEメソッドの具体的な使い方を中心に、更新と削除の処理をどのように実装するかを解説していきます。
5. PUTメソッドの使い方(既存データの更新)
PUTメソッドは、REST APIにおいて「更新」を担当する重要なHTTPメソッドです。既存のリソースに対して、新しいデータを上書きする形で反映するために使われます。たとえば、登録済みの書籍タイトルを変更したり、ユーザーのプロフィール情報を更新したりするケースで活用されます。
PUTメソッドは、対象のリソースが存在していれば更新を行い、存在しない場合には新規作成するという動作になることもありますが、Springでの実装では主に「更新」として使われます。
ただし、HTMLの
6. DELETEメソッドの使い方(データの削除)
DELETEメソッドは、REST APIにおける「削除」処理を担当するHTTPメソッドです。特定のリソースを指定し、それをサーバーから削除したいときに使います。たとえば、IDが5の書籍を削除するなどの用途です。
GETやPOSTと異なり、DELETEメソッドもHTMLの
7. HTTPメソッドの使い分けのポイントまとめ(初心者向けの判断基準)
REST APIでは、目的に応じて適切なHTTPメソッドを選んで使うことが非常に重要です。メソッドの使い分けができていないと、システムが意図しない動作をする可能性があるため、基本をしっかり押さえておきましょう。
以下は、代表的なHTTPメソッドの使い分けの基準をまとめた一覧です。
- GETメソッド: データの取得。副作用がなく、閲覧専用。
- POSTメソッド: 新規データの作成。サーバー側に変化が生じる。
- PUTメソッド: 既存データの更新。全体の置き換え処理が基本。
- DELETEメソッド: データの削除。対象のリソースをサーバーから除去。
また、初心者が間違えやすいポイントとして、「POSTとPUTの違い」があります。POSTはリソースを追加するためのメソッドで、どこに追加されるかはサーバーが判断することが多いです。一方、PUTは指定されたリソースの位置に更新を行うため、対象がはっきりしている必要があります。
さらに、GETメソッドを使ってデータを削除したり更新するような設計は、RESTの原則に反します。GETはあくまで「取得専用」であり、どれだけ呼び出してもサーバーの状態を変えてはいけません。
このように、それぞれのHTTPメソッドには明確な役割があり、設計段階で正しく使い分けることがREST APIにおいて非常に重要です。開発チーム内でルールを統一し、ドキュメント化しておくことで、保守性の高いシステム構築が可能になります。
最後に、PUTメソッドやDELETEメソッドは、初心者には少しハードルが高いかもしれませんが、JavaScriptのfetchなどを活用すれば実装も可能です。小さなアプリケーションから始めて、実際に動かして学んでいくことが最も効果的です。
HTTPメソッドの使い分けをマスターすれば、REST APIの設計や開発がよりスムーズになり、他の開発者との連携もスムーズになります。まずは基本をしっかり理解し、コードを書いて試してみることが大切です。
まとめ
REST APIを理解する上で欠かせないのが、HTTPメソッドの正しい役割と使い分けです。今回の記事では、GET・POST・PUT・DELETEという4つの代表的なメソッドを中心に、「リソース」という考え方をもとにデータ取得・作成・更新・削除の仕組みを整理しながら見てきました。とくに、Spring Framework を使ったコントローラ実装の例を通して、実際にどのようにリクエストを受け取り、どのようにレスポンスを返しているのかがイメージできるようになったはずです。REST APIは単なる通信手段ではなく、Webアプリケーション全体の設計に関わる大切な概念であり、HTTPメソッドを正しく選び、URLでリソースを表現し、JSONでデータを交換するという流れは、今や多くのシステムで標準的に採用されている方法です。
また、GET は「情報を取得するだけで変更しない」、POST は「新しいデータの作成」、PUT は「既存データの更新」、DELETE は「不要になったデータの削除」というように、それぞれのメソッドが本来持つ意味を理解して使うことによって、API全体のわかりやすさや保守性が格段に向上します。特に、REST APIは URL の構造やメソッドの意味が明確であるほど、クライアント側の実装が簡単になり、予測しやすい動作につながっていくものです。こうした背景を理解しておくことは、今後APIを作成したり外部のAPIを利用したりする際にも非常に役立ちます。
■ REST APIの動作を確認する簡単なサンプルコード
記事内と同じように、Springの@Controllerを使ったシンプルなサンプルを以下にまとめました。GETとPOSTを中心に、REST APIの基本的な動作の再確認として活用できます。
@Controller
public class SampleRestController {
private final List<String> items = new ArrayList<>();
@GetMapping("/items")
@ResponseBody
public List<String> getItems() {
return items;
}
@PostMapping("/items")
@ResponseBody
public String addItem(@RequestParam String name) {
items.add(name);
return name + " を追加しました";
}
}
このように、GETでは現在のリストをそのまま返し、POSTでは新しい項目を追加する構成になっています。REST APIの基本動作を体験するには非常にわかりやすい構造です。これにPUTやDELETEを加えていけば、より本格的なCRUD操作を備えたAPIとして発展させることができます。データの構造や返却形式をJSONで統一することで、外部アプリケーションやフロントエンドとの連携も容易になり、学んだ内容が実践的な開発へと自然につながっていきます。
今後、API設計を行うときには、メソッドの意味、URLの設計、レスポンスの形式、そして変更に強い構成を意識することが重要です。REST APIはシンプルですが、その分設計次第で使いやすさや拡張性が大きく変わるため、今回の内容を丁寧に身につけておくことが将来的な開発力の向上につながります。
生徒:「GETとPOSTはわかりやすいですが、PUTとDELETEは実際の操作のイメージがつかみにくかったです。でも、REST APIでは4つのメソッドに役割がしっかり分かれている理由がよくわかりました。」
先生:「そうだね。特にPUTとDELETEはフォームでは扱いにくいから、JavaScriptやAxios、Fetch APIを使うと便利だよ。実際の開発では、フロントエンドと組み合わせて活用することが多いんだ。」
生徒:「URLでリソースを表現するという考え方が新鮮でした。確かに、操作内容が統一されているとAPIがすごく見通しよくなりますね。」
先生:「その通り。RESTの考え方は“わかりやすく、予測しやすく”を大事にしているんだよ。HTTPメソッドの役割を正しく使うことで、自然と良いAPI設計ができるようになるんだ。」
生徒:「次はPUTやDELETEも実装して動かしてみたいです!」
先生:「ぜひ挑戦してみて。実際に手を動かしてみると、APIへの理解がもっと深まるからね。」