こんにちは!
今回はREST APIについてまとめます。
REST APIはRESTの原則に則ったWeb APIのことです。 では、それぞれの用語についてみていきましょう。
APIとは
- Application Programming Interfaceの略
- プログラム同士が情報をやり取りするためのインターフェース
Web APIとは
- Webサービスを外部から利用するためのインターフェース
RESTとは
- REpresentational State Transferの略
- 2000年にRoy Fieldingが論文で発表
- Webサービスを設計する際の原則
- 原則として次の6つが挙げられる
- クライアント/サーバー
- ステートレス
- キャッシュ制御
- 統一インターフェース
- 階層化システム
- コードオンデマンド
クライアント/サーバー
- クライアントとサーバーで役割を分担する
- クライアントが画面(UI)を表示
- サーバーがデータを処理
メリット
- それぞれの役割を分離することで、片方だけの変更を可能にする
- クライアントだけの変更や、サーバーだけの変更を可能にする
ステートレス
- メッセージのやり取りにおいて、前回メッセージの内容を保持しない
- 一つのリクエストに全ての情報が含まれる
- 状態はクライアントが保持する
メリット
- サーバーはリクエストだけで必要な情報を取得できる
- 呼び出し順序を気にする必要がない
キャッシュ制御
メリット
- ユーザーの体験が向上する
- 同じデータを何度も返す必要がなくなる
統一インターフェース
メリット
- 統一インターフェースを守る限りにおいて、サーバーとクライアントを独自に開発することができる
階層システム
- 特定の機能と役割を持つサーバー(コンポーネント)が階層を構成するような設計
メリット
- コンポーネント単位での開発や、置き換え、隔離などがしやすくなる
コードオンデマンド
- クライアントがコードをダウンロードして実行する
メリット
- リリース後にコードの更新が可能
- クライアントが処理をするため、サーバーの負荷が下がる
REST APIとは
メリット
おわりに
今回はREST APIについてまとめました。
あくまでも論文の中で提案された設計の考え方なので、6つの原則でなく、4つの原則として紹介する人もいますね。どちらにしても、現在ではほとんどのWebAPIの基礎となっている考え方のようです。Railsで開発する際にもRESTの考え方がベースになっているので、しっかりとイメージを掴んでおきたいですね。