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