Open2
API設計で普段気をつけていることを言語化する

-
明確なエンドポイント設計
- リソースベース:エンドポイントはリソースに基づいて設計します。例えば、ユーザー情報を取得するエンドポイントは /users、特定のユーザー情報を取得するエンドポイントは /users/{id} のようにします。
-
HTTPメソッドの適切な使用
GET:データの取得 POST:新しいリソースの作成 PUT:既存リソースの全体的な更新 PATCH:既存リソースの部分的な更新 DELETE:リソースの削除
-
ステータスコードの適切な使用
- 代表的なものを以下に列挙する。
• 200 OK:リクエストが成功した場合
• 201 Created:新しいリソースが作成された場合
• 204 No Content:リクエストが成功したが返すデータがない場合
• 400 Bad Request:リクエストが不正である場合
• 401 Unauthorized:認証が必要な場合
• 403 Forbidden:リクエストが禁止されている場合
• 404 Not Found:リソースが見つからない場合
• 500 Internal Server Error:サーバー側のエラーが発生した場合
- 代表的なものを以下に列挙する。
-
リクエストとレスポンスの設計
- リクエストおよびレスポンスフォーマットは一貫性を保つ。基本的にJSONを使用する。
- データの構造はできる限りフラットにする。
- エラーメッセージ:エラーメッセージは詳細で、ユーザーにとって理解しやすい形式にする。
{ "error": "Invalid input", "details": "Email is required" }
- リクエストおよびレスポンスフォーマットは一貫性を保つ。基本的にJSONを使用する。
-
Open APIの記述や、curlコマンド実行例などの、ドキュメント整備を行うこと。
-
パフォーマンス面に関して、必要であればAPIのレート制限やレスポンスデータのキャッシングを行う。
- キャッシュの例として、Cache-Controlヘッダーによるクライアントサイドでのキャッシングがあったりする。