リクエスト †
URI †
- 動詞ではなく名詞を用い、複数形とする
- スネイクケース推奨
- 但し、ドメイン名ではスネイクケースが使用できないことに留意
- APIのバージョンをURIに含める
- バージョン番号は「v」+「整数」(例:v1, v2, ...)
- ベースURIにAPI提供を表す「api」という単語を含める
パラメタ †
- 1つのパラメタに複数の値を指定する際にはカンマ「,」を用いる
ページネーション †
- limit/offset型
- 取得開始ページ「offset」または「page」と件数「limit」とする
- カーソル型
- 「cursor」で開始するデータの ID を指定
- データ量が多い場合に備えて「limit」も指定できるようにする
レスポンス †
文字コード †
データ表記 †
日時 †
- ISO8601に準拠
- 日本時間の場合:YYYY-MM-DDTHH:mm:ss+0900
性別 †
- ISO5218に準拠
- 男性は 1、女性は 2、それ以外は 9、不明な場合は 0
メタデータ †
エラー †
データ項目 †
- status ... HTTPステータスコードをHTTPレスポンスヘッダに格納
- type ... エラーの種別を示すURIを格納
- title ... エラーの名称を表示
- detail ... エラーの説明文を格納
セキュアなエラーフィードバック †
- 403 Forbidden
- データへのアクセス不許可 → データが存在することを暗に認めていることになる
- 「404 Not Found」レスポンスに変えることも検討する
- 500 Internal Server Error
- APIのベースとなっている技術スタックに関する詳細情報が提供されないようにすること
- APIの内部で実際に稼働しているものの手がかりになるような情報を提供しないように注意する必要がある
HAL (Hyper Application Language) †
ファイルアップロード †