カテゴリ: SpringのAPI開発(REST & GraphQL) 更新日: 2025/12/03

REST APIの主要なHTTPメソッド(GET, POST, PUT, DELETE)を初心者向けにわかりやすく解説!

REST APIの主要なHTTPメソッド(GET, POST, PUT, DELETE)
REST APIの主要なHTTPメソッド(GET, POST, PUT, DELETE)

新人と先輩の会話形式で理解しよう

新人

「REST APIってよく聞きますけど、具体的に何なんでしょうか?」

先輩

「REST APIは、Webシステム同士がデータをやりとりするための基本的な仕組みだよ。特にHTTPメソッドを使って操作するのが特徴だね。」

新人

「操作って、どんなことができるんですか?」

先輩

「GETやPOSTなどのHTTPメソッドを使って、データの取得・作成・更新・削除ができるんだ。まずはREST APIの基本から見ていこう。」

1. REST APIとは何か?

1. 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メソッドの役割とは?

2. HTTPメソッドの役割とは?
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では少し工夫が必要です。通常は

タグでは使えないため、JavaScriptなどでリクエストを送る場合が多いです。

■ DELETEメソッド:データの削除

DELETEメソッドは、指定したリソースを削除するために使います。「IDが5の本を削除する」といったケースに用います。

こちらもPUTと同様に、formタグから直接送信するには制限がありますが、AjaxやJavaScript経由ではよく使用されます。

■ 実際の通信例(JSONデータのやりとり)

REST APIでは、JSON形式のデータをやりとりするのが一般的です。以下は、GETリクエストで取得されるJSONデータの例です。


["Spring入門", "Javaの基礎"]

POSTやPUTリクエストでは、以下のようなJSONデータをリクエストボディに含めて送信することもあります。


{"title": "Springセキュリティ入門"}

このように、HTTPメソッドを理解することは、REST APIを使いこなす第一歩です。次回は、これらのメソッドを使った具体的なサンプル実装をさらに詳しく解説します。

3. GETメソッドの使い方(データの取得)

3. GETメソッドの使い方(データの取得)
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メソッドの使い方(新規データの作成)

4. POSTメソッドの使い方(新規データの作成)
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メソッドの使い方(既存データの更新)

5. PUTメソッドの使い方(既存データの更新)
5. PUTメソッドの使い方(既存データの更新)

PUTメソッドは、REST APIにおいて「更新」を担当する重要なHTTPメソッドです。既存のリソースに対して、新しいデータを上書きする形で反映するために使われます。たとえば、登録済みの書籍タイトルを変更したり、ユーザーのプロフィール情報を更新したりするケースで活用されます。

PUTメソッドは、対象のリソースが存在していれば更新を行い、存在しない場合には新規作成するという動作になることもありますが、Springでの実装では主に「更新」として使われます。

ただし、HTMLのタグではPUTメソッドを直接送信できないため、JavaScript(fetchなど)を使って実装するのが一般的です。


@Controller
public class BookController {

    @PutMapping("/books/{id}")
    @ResponseBody
    public String updateBook(@PathVariable int id, @RequestParam String title) {
        // 実際はここでデータベースの処理を行う
        return id + "番の書籍を「" + title + "」に更新しました。";
    }
}

@PutMappingを使ってエンドポイントを定義し、@PathVariableでURL内のIDを取得、@RequestParamで新しいタイトルを受け取っています。

このメソッドに対応するJavaScriptコードは以下のようになります。


<script>
fetch("/books/1", {
  method: "PUT",
  headers: {
    "Content-Type": "application/x-www-form-urlencoded"
  },
  body: "title=改訂版Java入門"
});
</script>

このスクリプトは、IDが1の書籍を「改訂版Java入門」に更新するという意味になります。サーバー側ではそのIDに該当するリソースを探して、渡された新しい値で上書きする処理を行います。

PUTメソッドは、更新対象を明確に指定して使う点が重要です。誤って全体を上書きしないよう、注意しながら使う必要があります。

6. DELETEメソッドの使い方(データの削除)

6. DELETEメソッドの使い方(データの削除)
6. DELETEメソッドの使い方(データの削除)

DELETEメソッドは、REST APIにおける「削除」処理を担当するHTTPメソッドです。特定のリソースを指定し、それをサーバーから削除したいときに使います。たとえば、IDが5の書籍を削除するなどの用途です。

GETやPOSTと異なり、DELETEメソッドもHTMLのタグでは直接使用できないため、JavaScriptによる送信が一般的となります。


@Controller
public class BookController {

    @DeleteMapping("/books/{id}")
    @ResponseBody
    public String deleteBook(@PathVariable int id) {
        // 実際はここでデータベースから該当IDの書籍を削除
        return id + "番の書籍を削除しました。";
    }
}

この例では、URLパスから書籍のIDを取得し、そのIDに該当するリソースを削除します。実際のアプリケーションでは、データベースとの連携処理が入ることが多いですが、ここではロジックを簡略化しています。

DELETEメソッドを使ったJavaScriptの例は次のとおりです。


<script>
fetch("/books/1", {
  method: "DELETE"
});
</script>

このコードを実行すると、IDが1の書籍が削除されるリクエストが送信されます。リソースが削除されると、サーバーから確認のメッセージやステータスコードが返されるのが一般的です。

DELETEメソッドは操作が不可逆なため、使用時には確認ダイアログなどでユーザーに確認を取る実装がよく用いられます。

7. HTTPメソッドの使い分けのポイントまとめ(初心者向けの判断基準)

7. HTTPメソッドの使い分けのポイントまとめ(初心者向けの判断基準)
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への理解がもっと深まるからね。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

REST APIとは何ですか?初心者でもわかるように教えてください。

REST APIは、Web上のデータ(リソース)をHTTPメソッドを使って操作できる仕組みで、GETやPOSTなどを通じて情報の取得・追加・更新・削除を行います。特にWebシステム同士の連携やデータ通信で広く利用されています。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
New1
Thymeleaf
Thymeleaf 変数の定義方法をわかりやすく解説|初心者向けテンプレート入門
New2
Thymeleaf
Thymeleaf th:attrで属性をまとめて設定する方法を初心者向けに解説
New3
Thymeleaf
ThymeleafとJavaScriptのonclickで引数を渡す方法を完全解説!初心者でもわかる値の受け渡し
New4
Thymeleaf
Thymeleaf javascript inlineの書き方と使い方を完全ガイド!初心者でもわかるテンプレートエンジンとJavaScript連携
人気記事
No.1
Java&Spring記事人気No1
Thymeleaf
Thymeleaf とは?初心者向けにThymeleafの基本を徹底解説
No.2
Java&Spring記事人気No2
SpringのDB操作
JPAの標準クエリメソッド(findById, findAll)を完全解説!初心者でもわかるデータ取得の基本
No.3
Java&Spring記事人気No3
SpringのWeb開発(Spring MVC)
Spring MVC入門(概要とアーキテクチャ)
No.4
Java&Spring記事人気No4
SpringのAPI開発(REST & GraphQL)
REST APIの主要なHTTPメソッド(GET, POST, PUT, DELETE)を初心者向けにわかりやすく解説!
No.5
Java&Spring記事人気No5
SpringのDB操作
findByXxx, existsByXxx の基本(JPA)を完全解説!初心者でもわかるクエリメソッドの使い方
No.6
Java&Spring記事人気No6
Spring認証(Spring Security)
セッション管理の基本(@SessionAttributes)を完全解説!初心者でもわかるセッションの仕組み
No.7
Java&Spring記事人気No7
Thymeleaf
Thymeleaf if elseの書き方と条件分岐の活用法!初心者でもわかる使いこなしガイド
No.8
Java&Spring記事人気No8
SpringのWeb開発(Spring MVC)
Spring Bootでの@GetMappingと@PostMappingの基本を完全解説!初心者でも理解できる使い方