• システム開発に関わる内容をざっくりと書いていく

API設計書の項目

API設計書は、APIの構造や動作を正確に記述した文書であり、開発者がAPIを正しく実装し、利用するためのガイドとなる。API設計書には、以下のような項目を含めることが一般的。


1. URI

APIエンドポイントを示すURI(Uniform Resource Identifier)は、APIが提供するリソースへのアクセス経路を定義する。

記載内容:

  • エンドポイント例: /api/v1/users (ユーザー情報を取得するエンドポイント)
  • メソッド: GET, POST, PUT, DELETE などのHTTPメソッド。
    • GET: データの取得
    • POST: 新規データの作成
    • PUT: 既存データの更新
    • DELETE: データの削除

2. パラメータ

APIリクエストで送信されるデータ。クエリパラメータ、パスパラメータ、ボディパラメータの3つがあり、それぞれ使い方が異なる。

記載内容:

  • クエリパラメータ: URLに含まれるパラメータ。例: ?page=1&limit=10
  • パスパラメータ: URIに埋め込まれるパラメータ。例: /api/v1/users/{userId}
  • ボディパラメータ: POSTやPUTリクエストの際に送信されるデータ。JSONやXML形式が一般的。例:json{ "username": "JohnDoe", "email": "john.doe@example.com" }

3. リクエスト例

APIを利用する際にどのようにリクエストを送るかを明示する項目。

記載内容:

  • リクエストの例: 実際にどのようにリクエストを送信するかの具体例。例えば、GETメソッドを使ってユーザー情報を取得する際の例:http GET /api/v1/users/123 HTTP/1.1 Host: example.com Authorization: Bearer token12345 Content-Type: application/json

4. レスポンス

APIから返されるレスポンスの形式や構造を定義。一般的に、JSON形式でデータが返されることが多い。

記載内容:

  • ステータスコード: 200(成功)、404(リソースが見つからない)、500(サーバーエラー)など、HTTPステータスコードの説明。
  • レスポンスの例:json { "status": "success", "data": { "id": 123, "username": "JohnDoe", "email": "john.doe@example.com" } }

5. 認証と認可

APIを利用するための認証方法と、アクセスできるリソースを制御する認可の仕組み。

記載内容:

  • 認証: Bearer tokenAPIキーなど、APIにアクセスする際に必要な認証方法。
  • 認可: 特定のエンドポイントにアクセスするための権限。例えば、管理者のみが特定のリソースにアクセスできる場合など。

6. エラーハンドリング

APIがエラーを返す際のメカニズムや、エラーコードの定義。API利用者が適切にエラーを処理できるように記述する。

記載内容:

  • エラーレスポンスの例:json { "status": "error", "message": "User not found", "code": 404 }
  • 代表的なエラーコード:
    • 400: 不正なリクエスト
    • 401: 認証が必要
    • 403: 権限がない
    • 404: リソースが見つからない
    • 500: サーバーエラー

7. セキュリティ

APIのセキュリティ対策に関する項目。データを安全にやり取りするために、HTTPSや認証トークンを使用する。

記載内容:

  • HTTPS: 通信を暗号化するために、HTTPSを強制する必要がある。
  • 認証トークン: JWT(JSON Web Token)やOAuth 2.0など、APIリクエストの認証に使用する。

まとめ

API設計書には、URIやメソッド、パラメータ、レスポンス、認証、エラーハンドリング、セキュリティ対策など、APIの利用者が正確にAPIを使用するために必要な情報を記載する必要がある。これにより、開発者間でのコミュニケーションがスムーズになり、効率的なAPI開発と運用が可能になる。