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となる設計を心がけたいと思います!

参考