🉐

REST APIとは何か

2023/06/25に公開

✅解説

REST(Representational State Transfer)APIは、Webサービスやクライアント間でデータのやり取りを行うためのソフトウェアアーキテクチャのスタイルです。

REST APIでは、HTTPプロトコルを使用して、リソース(データや機能)に対する操作を行います。RESTの原則に従って設計されたAPIは、以下の特徴を持ちます。

  1. リソース指向: APIはリソースを表現し、それらに一意の識別子(URL)を割り当てます。例えば、ユーザー情報や商品データなどがリソースとして扱われます。

  2. 統一インターフェース: REST APIは一貫したインターフェースを提供します。HTTPメソッド(GET、POST、PUT、DELETEなど)を使用してリソースの操作を行い、HTTPステータスコード(200 OK、404 Not Foundなど)を返します。

  3. ステートレス: サーバーはクライアントの状態を保持しません。各リクエストは必要な情報を含み、独立して処理されます。セッションの状態管理はクライアント側に委ねられます。

  4. レスポンスの表現: クライアントは受け取るデータの形式を指定することができます。一般的にはJSONやXMLなどの形式が使われます。リクエストヘッダにAcceptヘッダを含めることで、希望するレスポンス形式を指定します。

REST APIは、様々なプラットフォームやアプリケーション間での相互運用性を高めるために広く利用されています。Webサービスの提供やデータの共有、モバイルアプリケーションのバックエンドなど、さまざまな場面で活用されています。

✅以下は、REST APIの一部をJSON形式で表現した例です。

{
  "name": "Product API",
  "description": "API for managing products",
  "endpoints": [
    {
      "path": "/products",
      "method": "GET",
      "description": "Retrieve a list of products"
    },
    {
      "path": "/products/{id}",
      "method": "GET",
      "description": "Retrieve a specific product by ID"
    },
    {
      "path": "/products",
      "method": "POST",
      "description": "Create a new product"
    },
    {
      "path": "/products/{id}",
      "method": "PUT",
      "description": "Update an existing product"
    },
    {
      "path": "/products/{id}",
      "method": "DELETE",
      "description": "Delete a product"
    }
  ]
}

この例では、商品(products)を管理するREST APIを表現しています。APIの名前、説明、エンドポイントの一覧が含まれています。

各エンドポイントは、パス(path)、HTTPメソッド(method)、および説明(description)のプロパティを持っています。たとえば、"/products"へのGETリクエストは、商品の一覧を取得するために使用されます。また、"/products/{id}"へのPUTリクエストは、特定の商品を更新するために使用されます({id}は商品IDを示すパラメータです)。

JSON形式は、データの表現と交換に広く使用される形式であり、REST APIの設計やドキュメント化にも適しています。上記の例は簡略化されていますが、実際のREST APIでは、リクエストやレスポンスのボディにさらに詳細なデータやフィールドが含まれることが一般的です。

まとめ

よく聞くREST APIとは、一意なURLを割り当てられていて、 HTTPメソッドのGET,POST,PUT,DELETE、を使用し、セッションの状態管理は、クライアント(操作する人)が行い、データの形式はJSONです。

Discussion