rocky-engineer7の技術日記

webエンジニアを目指して奮闘中!!

【初学者向け】REST APIについてまとめてみた

REST APIについて学習したので、まとめていきたいと思います。

APIって何?

API = ApplicationProgramInterface

  • 他のサービスの情報や機能を利用可能にする仕組み

RESTとは?

REST(REpresentational State Transfer)

  • Webサービスの設計思想
  • RESTの原則に従って実装されているAPIのこと

6つの制約条件

  1. クライアントサーバー: ユーザーインターフェースとデータ処理の分離。
  2. 階層化システム: システムの階層的構造による拡張性の向上。
  3. コードオンデマンド: 必要に応じてクライアントにコードを送信。
  4. 統一インターフェース: 標準的なHTTPメソッドによるリソース操作。
  5. キャッシュ制御: クライアントとサーバーの通信回数と量を減らすことでの通信効率向上。
  6. ステートレス: 各リクエストの独立性。

上記に基づいて実装されたAPIREST APIと呼びます。

movieリソースを操作するためのREST API設計例

下記の表では、/moviesは映画の一覧または映画に関する情報のリソースを表し、/movies/12345の数字部分は特定の映画(リソース)のIDを示しています。HTTPメソッド(GET、POST、PUT、DELETE)は、リソースに対する操作(読み取り、作成、更新、削除)を指定するために使用されます。

操作 URI HTTPメソッド
映画一覧の取得 /movies GET
特定の映画をIDで取得 /movies/12345 GET
映画の新規登録 /movies POST
特定の映画の更新 /movies/12345 PUT
特定の映画の削除 /movies/12345 DELETE

設計ポイント

  • HTTPメソッドとURIの組み合わせ: 実現したい操作に合わせて、適切なHTTPメソッドとURIを組み合わせて設計すること。
  • CreateのPOSTとPUTの使い分け: PUTはリソースの名前が決まっている場合(更新操作)、POSTはリソースの名前が決まっていない場合(新規作成操作)に使用します。
  • クエリパラメータとパスパラメータの使い分け: クエリパラメータはリソースの絞り込み条件に、パスパラメータは一意なリソースの指定に使用する。