REST (ful) APIについて
Webシステムを外部から利用するためのプログラムの呼び出し規約(API)の種類の一つで、REST原則に従って策定されたものです。引用:https://e-words.jp/w/RESTful_API.html
REST APIではHTTP技術をベースとしており、HTTPメソッド(GET、POST、PUT、DELETE)などのメソッドを使用して、Web サーバーとクライアントアプリケーション間でデータをやりとりするためのAPIの一つ。
HTTPメソッド
HTTP (HyperText Transfer Protocol) は、WebサーバとクライアントのWebブラウザがデータを送受信するために使用する
アプリケーション層のプロトコルです。
リクエストを行う際に「どのような操作を行いたいか」を決定するために使用します。
メソッド名 | 説明 | ユースケース例 |
GET | リソースの取得 | SNSで検索する |
POST | リソースの新規登録 | SNSでコメントを投稿する |
PUT | 既存リソースの更新 or リソース名が特定できている場合の新規作成 | SNSでプロフィール情報を更新する |
DELETE | リソースの削除 | SNSで自分のアカウントを削除する |
ℹ️ HTTPメソッドはこのように更新や削除が用意されていますが、
HTMLのformタグ
は
GET
と
POST
しか対応していないため、更新や削除も
POST
を利用しているケースもあります。
ステータスコード
HTTPステータスコードとは一番上のレスポンス行で表示される3桁の番号のことです。クライアントのWebブラウザとサーバ間ではHTTPリクエストに対してレスポンスを返すことをします。
ステータスコード | 状態 | 説明 | 有名なステータスコード |
100番台 | 正常 | クライアントからのリクエストを受け入れ可能で、継続して処理されている状態 | 100 Continue |
リクエスト継続可能 | |||
200番台 | 正常 | クライアントからリクエストがサーバに送られ理解されて受理された状態です。 | 200 OK |
リクエストが正常に処理できた | |||
300番台 | 正常 | リクエストを完了させるために追加的な処理が必要です。 | 300 Multiple Choice |
リクエストに対して複数のレスポンスがあることを示す | |||
400番台 | エラー | クライアント(ユーザ)側で操作や入力に不備があった際に出てしまうエラー | 404 Not Found |
Webページが見つからない | |||
500番台 | エラー | サーバ側で問題が生じていている際に出てしまうエラー | 500 Internal Server Error |
何らかのサーバ内で起きたエラー |
APIのバージョン管理
APIを設計する際は、バージョンを考慮する必要があります。
APIは一度公開すると基本的には修正できないので、大きく変更を加える場合はバージョンを変更します。
バージョンの表現方法
APIのバージョンを表現する方法は主に以下3つです。
パターン | サンプル |
パス | https://api.example.com/v1/users/ |
クエリ | http://api.example.com/users?version=1 |
ヘッダー | GET https://api.example.com/users/X-Api-Version: 1 |
ℹ️
X接頭辞について
HTTPヘッダーに独自の定義を追加する場合はX接頭辞が推奨されていましたが、2012年6月から非推奨となりました。
参考: