はじめに
REST APIについて学んだので、簡単にまとめていきます。
REST APIとは
補足
APIとは
- Application Programming Interface
- 機能やデータを外部から呼び出して利用できるように定めた規約や、その規約に則ったサービスのこと
RESTとは
- REpresentational State Transferの略
- 日本語では「分散型システムにおける設計原則群」
- 2000年に考えられた抽象的な設計原則
- 現代では、この設計原則をWebシステムに適用し、REST APIとして使われることが多い
REST APIの設計ポイント
実現したい操作に合わせて、HTTPメソッドとURIを組み合わせて設計する。
ここでは例として、movie
をリソースとしたCRUD操作のHTTPメソッド、URIを定義する。
操作 | HTTP method | URI |
---|---|---|
映画一覧の取得 | GET | http://example.com/movies |
特定の映画をidで取得 | GET | http://example.com/movies/123 |
特定の映画をidで検索 | GET | http://example.com/movies?id=123 |
特定の映画の更新 | PUT | http://example.com/movies/123 |
映画の新規登録 | POST | http://example.com/movies |
特定の映画の削除 | DELETE | http://example.com/movies/123 |
ポイント
補足
基本のHTTPメソッド
メソッド | 意味 | CRUD操作 |
---|---|---|
GET | リソースの取得 | Read |
HEAD | リソースのヘッダ(メタ情報)のみ取得 | |
POST | 新しいリソースを送る | Create |
PUT | 現在のリソースをリクエストしたデータ形式で置き換える | Create/Update |
DELETE | リソースの削除 | Delete |
- CreateのPOSTとPUTの使い分け
- PUTはリソースの名前が決まっている場合、POSTは決まっていない場合
クエリパラメータとパスパラメータの使い分け
リソースの絞り込み方法として、クエリパラメータとパスパラメータの2種類があり、以下のように使い分ける
種類 | 概要 | 用途 |
---|---|---|
クエリパラメータ | URLの末尾に"?"がある 「GET http://example.com/users?id=123」 |
検索条件など、特定のリソースに条件を加える時に利用する |
パスパラメータ | URLの中にパラメータが埋め込まれている 「GET http://example.com/users/123」 |
ユーザーのプロフィール画面など、一意なリソースを表す時に利用する |