しぐまろぐ

勉強したことや読んだ本について書きます。

REST APIについて簡単にまとめてみた

はじめに

REST APIについて学んだので、簡単にまとめていきます。

REST APIとは

  • REST APIとは
    • パラメータを指定してHTTPでURIにアクセスすると、JSON形式等で記述されたデータを返すサービスや、そのための規約のこと

補足

APIとは

  • Application Programming Interface
  • 機能やデータを外部から呼び出して利用できるように定めた規約や、その規約に則ったサービスのこと

RESTとは

  • REpresentational State Transferの略
  • 日本語では「分散型システムにおける設計原則群」
  • 2000年に考えられた抽象的な設計原則
  • 現代では、この設計原則をWebシステムに適用し、REST APIとして使われることが多い

REST APIの設計ポイント

実現したい操作に合わせて、HTTPメソッドとURIを組み合わせて設計する。

ここでは例として、movieをリソースとしたCRUD操作のHTTPメソッド、URIを定義する。

操作 HTTP method URI
映画一覧の取得 GET http://example.com/movies
特定の映画をidで取得 GET http://example.com/movies/123
特定の映画をidで検索 GET http://example.com/movies?id=123
特定の映画の更新 PUT http://example.com/movies/123
映画の新規登録 POST http://example.com/movies
特定の映画の削除 DELETE http://example.com/movies/123

ポイント

  • URI
    • 入力ミスを防ぐため短めにする
    • URIはリソースの集合のため、単語は複数形moviesにする
    • クエリパラメータとパスパラメータを適切に使い分ける(後述)

補足

基本のHTTPメソッド

メソッド 意味 CRUD操作
GET リソースの取得 Read
HEAD リソースのヘッダ(メタ情報)のみ取得
POST 新しいリソースを送る Create
PUT 現在のリソースをリクエストしたデータ形式で置き換える Create/Update
DELETE リソースの削除 Delete
  • CreateのPOSTとPUTの使い分け
    • PUTはリソースの名前が決まっている場合、POSTは決まっていない場合

クエリパラメータとパスパラメータの使い分け

リソースの絞り込み方法として、クエリパラメータとパスパラメータの2種類があり、以下のように使い分ける

種類 概要 用途
クエリパラメータ URLの末尾に"?"がある
「GET http://example.com/users?id=123
検索条件など、特定のリソースに条件を加える時に利用する
パスパラメータ URLの中にパラメータが埋め込まれている
「GET http://example.com/users/123
ユーザーのプロフィール画面など、一意なリソースを表す時に利用する

参考