APIを設計したり、開発したりする時に、HTTPメソッドをどうするかに迷うことがありませんか?それでは、HTTPメソッドは果たして何ですか?各メソッドはどのように動作していますか?本文では、このような問題に対して答えようとしています。
HTTPメソッドとは
HTTPメソッドは、HTTP Methodから由来する言葉になります。HTTP Methodを日本語に翻訳すると、「HTTPメソッド」だけではなく、HTTPリクエストの方法と呼ばれることもあります。どのような訳文であっても、HTTPメソッドとは、HTTPプロトコルで定義されているリクエストメソッドのことです。また、APIにどのようなHTTPメソッドを使用することは、一般的にそのAPIの仕様書(定義書)で記載されています。
HTTPメソッド一覧
HTTPプロトコルといえば、HTTP1.0、HTTP1.1、HTTP2、HTTP3が存在します。それぞれのHTTPメソッドには大した違いがありませんが、細かい相違点を紹介していきます。
メソッドの一覧表
メソッド | HTTP 1.0 | HTTP 1.1 | HTTP 2 | HTTP 3 | 解釈 |
---|---|---|---|---|---|
GET | ⭕️ | ⭕️ | ⭕️ | ⭕️ | サーバーから情報を取得する |
POST | ⭕️ | ⭕️ | ⭕️ | ⭕️ | サーバーにデータを送信して新規リソースを作成する |
HEAD | ⭕️ | ⭕️ | ⭕️ | ⭕️ | GETと同等だが、レスポンスボディを返さない |
PUT | ❌ | ⭕️ | ⭕️ | ⭕️ | サーバー上のリソースを完全に上書きする |
DELETE | ❌ | ⭕️ | ⭕️ | ⭕️ | サーバー上のリソースを削除する |
OPTIONS | ❌ | ⭕️ | ⭕️ | ⭕️ | サーバーの実装情報や機能を問い合わせる |
TRACE | ❌ | ⭕️ | ⭕️ | ⭕️ | サーバーにエコーバックテストを行う |
上記のテーブルのまとめ情報から見ると、HTTP 1.1で主要なメソッドが揃い、HTTP 2とHTTP 3ではパフォーマンス改善が主眼になります。また、HTTPメソッドの種類に関しては、1.1以降で大きな変更はないのも特徴です。
各HTTPメソッドにも全面的に対応可能のApidog
HTTPメソッドは、APIエンドポイントとのやり取りをする時に使われています。例えば、APIを設計する時に、このAPIはどのようなHTTPメソッドを使用するのかを定義する必要があります。また、特定のAPIを利用してリクエストを送信したりする時には、そのAPIの仕様書を参照して適切なHTTPメソッドを選択して、リクエストを送信する必要があります。
そこで、APIを設計することにも、APIをテストすることにも、どのHTTPメソッドにも対応できるツールを選択した方が良いのでしょう。本文では、Apidogという完璧なAPI管理ツールを皆さんに紹介します。Apidogを使用すると、その直感的なUIで、APIのリクエストとレスポンス検証、APIの設計と仕様書生成、APIモック、APIテスト自動化などのことも簡単に実現されます。自分で開発しようとするAPIのHTTPメソッドを定義したり、特定のHTTPメソッドを指定してリクエストを送信したりすることも、Apidogによって簡単に実現されます。
ApidogでHTTPメソッドを指定してリクエストを送信する
それでは、次はApidogという優れていたAPI管理ツールを使用して、HTTPメソッドを指定して、リクエストを送信する操作手順を皆さんに紹介します。上記のボタンから、Apidogのオンラインバージョンを利用しながら、この操作手順を参照して一緒に操作を行うことができます。
Apidogでは、APIリクエストを送信する時に、エンドポイントのURLの入力ボックスの左側にHTTPメソッドを選択することができます。
そのエリアをクリックして、展開したドロップリストから全てのHTTPメソッドが表示されます。目標のHTTPメソッドが何であってもここから選択して利用できます。
後記:メソッドのLINKとUNLINKはHTTPメソッドではない?
一般的のHTTPの標準的なメソッドには、LINKやUNLINKといったメソッドは含まれていません。LINKやUNLINKはWebDAV (Web Distributed Authoring and Versioning) の拡張メソッドとして定義されています。
- LINK - リソース間のリンクを生成する
- UNLINK - リソース間のリンクを削除する
これらはFTPのディレクトリ操作と同等の機能を実現するために導入されたメソッドです。ただし、Web APIなどで一般的に利用されているのはHTTPの標準的なメソッドがほとんどです。