RESTの背景と基礎知識
2021/10/15 06:00
REST(Representational state transfer)について、話者が最初に出会った体験や、基本的な考え方についてお伝えしました。導入で20分、より丁寧なRESTだけの掘り下げを30分程度の動画で行いました。
話者の体験から
- REST(Representational state transfer)との出会いは「サーバー間のAPI作成時にどのような作法でやるか」という分野からです。
- 当時はSOAPによる"オブジェクト操作を基本に考えたAPI公開"が既にあったが、「サーバ側オブジェクトからStubを作成して分配してシステムを作る」という方式について若干の億劫さが感じられた時代でした。
- RESTは「URL/URIとHTTPメソッドの本来の意味に従って作成するだけで良い」という大変シンプルな考え方の為、大きく広がって今に至ります。
- また、APIの作成以外のWEBシステムのURLやHTTPメソッドの作成にも影響を与え、現在の主流なWEBアプリケーションフレームワークがRestfulな考え方を踏襲してゆく結果になりました。
現在のWEBシステム開発におけるRESTとは
基本的に以下の2つのルールに則ってシステムを作成する考え方です。このような性質をRESTfulと言ったりもします
- URLでリソースのある場所を示す(大抵はリソースの名前と、一意のIDにあたるものがあります)
- HTTPメソッドでリソースの操作を示す(CRUD→GET/POST/PUT/DELETE)
よく見られる形
現在WEBシステムの開発でよく見られるのは以下のような形式でしょう。
HTTPメソッド | 意味 | 冪等性 | よく用いられるURL |
---|---|---|---|
GET | 読み | ○ | /users, /users/:id |
POST | 作成, その他 | /users | |
PUT | 全体更新 | ○ | /users/:id |
PATCH | 部分更新 | /users/:id | |
DELETE | 削除 | ○ | /users/:id |
特にPOSTは「困ったらPOSTにしておく方が良い」という考え方があります。