設計書(システム)SYS-03

API設計書テンプレート

共通仕様、API 一覧、リクエスト・レスポンス、RFC 9457 形式のエラー仕様をそろえます。

章の数
シンプル 4 / 標準 8 / 詳細 11
形式
Markdown(UTF-8)
分類
システム設計 / API / セキュリティ

テンプレート本文

目次
  1. 文書管理情報
  2. 改版履歴
  3. 1. 概要
  4. 2. 共通仕様
  5. 3. API一覧
  6. 4. API詳細
  7. 5. エラー仕様
  8. 6. 備考

API設計書

文書管理情報

項目内容
システム名
API名
版数1.0
作成日YYYY/MM/DD
作成者

改版履歴

版数日付変更箇所変更内容変更者
1.0YYYY/MM/DD-初版作成

1. 概要

  • 目的:
  • 利用者(呼び出し元):
  • OpenAPI 定義ファイル:

2. 共通仕様

項目仕様
ベースURLhttps://api.example.com/v1
プロトコルHTTPS(TLS 1.2 以上)
認証方式OAuth 2.0 Bearer トークン
データ形式JSON(UTF-8)
日時形式ISO 8601(例: 2026-04-01T09:00:00+09:00)
バージョニングURL パス(/v1)
ページングlimit / cursor
レート制限
エラー形式RFC 9457 Problem Details

3. API一覧

API IDメソッドパス概要認証
API-001GET/items一覧取得要
API-002POST/items登録要

4. API詳細

API-001 一覧取得
  • メソッド / パス: GET /items
  • 概要:
  • 権限:
リクエストパラメータ
名前位置型必須説明例
limitqueryinteger-取得件数(1〜100、既定 20)20
cursorquerystring-次ページの取得位置
レスポンス(200 OK)
{
  "items": [
    {
      "id": "item_001",
      "name": "sample",
      "createdAt": "2026-04-01T09:00:00+09:00"
    }
  ],
  "nextCursor": null
}
項目型必須説明
items[].idstring○
items[].namestring○
nextCursorstring / null○次ページがない場合は null

5. エラー仕様

{
  "type": "https://api.example.com/problems/validation-error",
  "title": "入力値が不正です",
  "status": 400,
  "detail": "name は必須です",
  "instance": "/items"
}
HTTPステータス発生条件type
400 Bad Request入力値の形式エラーvalidation-error
401 Unauthorized認証情報がない・無効unauthorized
403 Forbidden権限がないforbidden
404 Not Found対象が存在しないnot-found
409 Conflict状態の競合conflict
429 Too Many Requestsレート制限超過rate-limited
500 Internal Server Errorサーバー内部エラーinternal-error

6. 備考

スポンサーリンク

API設計書の書き方

用途

API の共通仕様と個別仕様をまとめ、提供側と利用側が実装前に入出力とエラーの扱いを合意するための文書です。OpenAPI 定義と併用します。

主な構成

  • 共通仕様(認証・形式・日時・ページング)
  • API 一覧
  • リクエストパラメータ
  • レスポンス例と項目定義
  • エラー仕様(RFC 9457)
  • 非機能・セキュリティ(詳細版)

記入のポイント

  1. 日時・ID・金額の形式は共通仕様で一度だけ決める
  2. エラーは HTTP ステータスと業務上の理由(type)を分ける
  3. レスポンス例は実際に返る JSON をそのまま載せる
  4. 権限のない他者のデータを取得できないか(認可)を必ず確認する

準拠・参考