※本ページにはプロモーション(広告)が含まれています
HTTPメソッド(GET/POST/PUT/DELETE)とURL(リソース)の組み合わせで、サーバーの情報を操作するAPIの設計スタイル。Web APIの主流形式。
詳しい解説
REST APIは、HTTPをベースに『どのURL(リソース)に、どんな操作(メソッド)をするか』という原則で設計されたAPIの形式です。2000年にロイ・フィールディング氏が博士論文で提唱した『RESTful』の考え方に従っており、現代のWebサービス間連携で最も広く採用されているAPI設計スタイルです。
基本的な考え方は、操作の対象を『リソース』と捉えることです。たとえばユーザー情報なら `/users/123` というURLで表現し、GET(取得)・POST(作成)・PUT/PATCH(更新)・DELETE(削除)という4つのメソッドで操作を区別します。`GET /users/123` は『ID 123のユーザーを取得』、`DELETE /users/123` は『ID 123のユーザーを削除』と、URLとメソッドを見るだけで操作の意味が分かる直感的な設計が特徴です。
リクエスト・レスポンスのボディには主にJSONが使われ、HTTPステータスコード(200 OK・201 Created・404 Not Found・500 Internal Server Errorなど)で結果を伝えます。『ステートレス』であること(サーバーに状態を持たず、毎リクエストに必要な情報を含める)も重要な原則で、これによりスケーラビリティが高まります。
設計の指針として、リソースは複数形名詞にする(/users、/products)、動詞をURLに入れない(/getUserではなく GET /users/:id)、クエリパラメータで絞り込み(?status=active)、といった慣習があります。認証はAPIキー、Bearer Token、OAuth 2.0などが一般的です。
対立概念としてはGraphQL(次項)があり、REST APIが固定のエンドポイントを返すのに対し、GraphQLはクライアントが欲しいフィールドを指定する方式です。
天気アプリがサーバーから東京の天気を取ってくる場面を想像してください。アプリは `GET https://api.example.com/weather?city=tokyo` を送信し、サーバーは `{"temp":23,"weather":"sunny"}` のようなJSONを返します。これがREST APIの最小の形です。Twitter、GitHub、Stripe、ほとんどの主要Webサービスがこの形式でAPIを提供しており、開発者は同じ感覚でさまざまなサービスを扱えます。
別の呼び方
RESTful API
RESTful Web API
レストAPI
minto.tech スマホ(Android/iPhone)・PC(Mac/Windows)の便利情報をお届け! 月間アクセス160万PV!スマートフォン、タブレット、パソコン、地デジに関する素朴な疑問や、困ったこと、ノウハウ、コツなどが満載のお助け記事サイトはこちら!