RESTful API

f:id:utouto97:20210725220816p:plain

RESTful API

RESTful API (REST API) は、RESTに基づいたAPIのことです。

REST

RESTとは、REpresentational State Transferのことで、ロイ・フィールディング氏によって提唱されました。

RESTには、次のような原則があります。

  • ステートレスなクライアント/サーバプロトコル
    HTTPメッセージの一つ一つが、そのリクエスト(メッセージ)を理解するために必要な全ての情報を含む。そのため、クライアントもサーバも、メッセージ間におけるセッションの状態を記憶しておく必要がない。ただし実際には、多くのHTTPベースのアプリケーションはクッキーやその他の仕掛けを使ってセッションの状態を管理している(URLリライティングのような一部のセッション管理手法を使うシステムは、RESTfulではない)。
  • すべての情報(リソース)に適用できる「よく定義された操作」のセット
    HTTP では操作(メソッド)の小さなセットが定義されている。最も重要なのは "GET"、"POST"、"PUT"、"DELETE" である。これらはデータ永続化に要求されるCRUDと比較されることがある。もっとも "POST" に関してはCRUDにはぴったり対応していない。
  • リソースを一意に識別する「汎用的な構文」
    RESTfulなシステムでは、すべてのリソースはUniform Resource Identifier (URI) で表される一意的な(ユニークな)アドレスを持つ。
  • アプリケーションの情報と状態遷移の両方を扱うことができる「ハイパーメディアの使用」
    RESTシステムでは、多くの場合、HTML文書またはXML文書を使う。こうした文書に情報およびその他のリソースへのリンクを含める。こうすることにより、あるRESTリソースから他のRESTリソースを参照したい場合は単にリンクを辿るだけでよい。レジストリなどの他の基盤的な機能を使う必要はない。

Representational State Transfer - Wikipedia

REST APIの特徴

URIでリソースを指定

REST APIでは、URI (エンドポイント)でリソースを指定します。
例えば、ユーザー(User)に対して操作をする場合はhttp://example.com/api/user、 投稿(Post)に対して操作する場合はhttp://example.com/api/postのようになります。

HTTPメソッドで処理を指定

先に述べたように、REST APIではURIでリソースを指定します。
そして、そのリソースに対してどのような処理を行うかをHTTPメソッドで指定します。

HTTPメソッドには、GET, POST, PUT, PATCH, DELETEなどがあります。
これらはそれぞれ、取得、作成、更新、更新、削除、として一般的に使われます。

REST APIの例

  1. ユーザー一覧の取得

エンドポイント http://example.com/api/user
HTTPメソッド GET

  1. ユーザーの新規追加

エンドポイント http://example.com/api/user
HTTPメソッド POST

  1. ユーザー情報の更新

エンドポイント http://example.com/api/user
HTTPメソッド PATCH

  1. ユーザーの削除

エンドポイント http://example.com/api/user
HTTPメソッド DELETE

α. 投稿に関する処理

上で示したユーザーの例で、エンドポイントをhttp://example.com/api/postに変更する。

REST APIは、このような感じのAPIになります。

終わり