はじめに
今回はRESTについて勉強したのでまとめようと思います。
RESTとは
Representational State Transfer
の略で、シンプルなWEBサービスの設計思想の1つです。
WEBサービスとはインターネット上で情報を提供するシステムのことです。例えばQiitaなどもWEBサービスの1つです。
REST APIとは
RESTのルール(RESTの4原則)に従ったAPIのことです。
RESTの4原則とは
①アドレス可能性 (Addressability)
WEB上の全てのリソースが一意なURLでアクセスが可能なこと
例)https://test.com/profiles/tarou_tanaka
と検索すると、田中太郎さんのプロフィール画面にアクセスすることができる
②統一インターフェース(Uniform Interface)
あらかじめ定義・共有された方法でやり取りを行うこと。
情報の操作は全てHTTPメソッドを利用すること。
メソッド名 | 役割 |
---|---|
GET | 何かしらのデータを取得する時に使う |
POST | クライアントからサーバにデータを送信する時に使う(主に新規登録) |
PUT | クライアントからサーバにデータを送信する時に使う(更新) |
DELETE | 既存データを削除したい時に使う |
③ステートレス性(Stateless)
サーバーがクライアントの状態を持たないように設計するため、やりとりが1回ごとに完結する。
④接続性(Connectability)
情報の内部に、別の情報へのリンクを含めることができること。
これらの4つを満たすシステムをRESTfulなシステム
と言います。
movieをリソースとして CRUD操作のURI、HTTPメソッドを定義してみよう
上記の情報を踏まえて、実際にmovieをリソースとしてURL・HTTPメソッドの定義をしてみましょう。
URL | HTTPメソッド | 何をしているか |
---|---|---|
/movies | GET | 映画の一覧を取得 |
/movies/1 | GET | id:1の"アナと雪の女王"の映画情報を取得 |
/movies | POST | 新規登録 |
/movies/{id} | PUT | idの情報を更新 |
/movies/{id} | DELETE | idの情報を削除 |
さいごに
RESTは調べつつ書いていても、概念を把握しきるのは難しいと感じました。
WEBサービスを作成する際には、RESTfulな設計を心がけていきたいと思います。
参考文献