REST APIとは?
はじめに
RESTについて学んだので、まとめていきたいと思います。
WebAPIとは
Webサービスで提供している機能やデータを、外からプログラムが読み取りやすい形で利用できるように定めた、規約またはその実装のことです。
WebAPIが公開されることで、第三者がデータや機能を活用して新たな機能を開発することができます。
それにより、自サービスの関連サービスが増え、自サービスをより発展させることができます。
RESTfulとは
RESTで求められる原則に従っていることを、RESTfulといいます。
RESTとは
RESTとは、Representational State Transferの頭文字をとったもので、日本語にすると「分散型システムにおける設計原則群」となります。
RESTの設計の原則として6つ守るべきとされている原則があります。
- クライアント/サーバー
- システムが役割によって分かれており、クライアントはリソースを要求し、サーバはそれを提供する役割を担う
- 階層化システム
- システムは複数の層で構成される
- 各層は独立して、拡張が可能である
- コードオンデマンド
- サーバーからクライアントにコードを送り、クライアント側で実行することができる
- 統一インターフェース
- システム全体で一貫したインターフェース(URIやHTTPメソッドなど)を持つことで、操作を容易にする
- ステートレス
- キャッシュ制御
- レスポンスがキャッシュ可能かどうかを明示する
- 明示することで効率とスケーラビリティが向上する
- レスポンスがキャッシュ可能かどうかを明示する
REST APIとは
上記をふまえ、REST APIとは、RESTfulなWebAPIのことを示します。
RESTで求められる原則に従う、規約または実装となります。
REST API成熟度モデルというものがあり、これはREST API設計レベルを定めています。
REST API設計レベルとはどれだけRESTに準拠しているのかを示しています。
REST APIのデータ操作
REST APIでは、GET等のリクエストでデータを操作します。
movieをリソースとして、基本的なCRUD操作を行うURI、HTTPメソッドを定義してみます。
前提として、対象データを特定するユニークな値をidとします。
URI | HTTP method | 操作内容 |
---|---|---|
/movies | GET | movieの一覧取得 |
/movies | POST | movieの新規登録 |
/movies/{id} | GET | 特定のmovie情報を取得 |
/movies/{id} | PUT | movie情報を更新 |
/movies/{id} | DELETE | movie情報を削除 |
おわりに
WebAPIを設計する際は、REST APIとなる設計を心がけたいと思います!