APIドキュメント設計 えーぴーあいどきゅめんとせっけい
APIドキュメントOpenAPISwaggerAPIファーストスキーマ駆動開発API仕様
APIドキュメントってどう書けばいいの?
簡単に言うとこんな感じ!
良いAPIドキュメントは「初めて使う人がドキュメントだけでAPIを叩けること」が目標だよ!エンドポイント・パラメータ・レスポンス例だけじゃなく、「なぜこのAPIが必要か」「どんなユースケースで使うか」も書くと、API利用者に優しいドキュメントになるんだ。OpenAPIで書くと自動でコードも生成できて便利!
APIドキュメント設計とは
APIドキュメント設計 とは、APIの仕様・使い方・制約を利用者が理解し実装できるように体系的に記述・整備することです。
APIファースト開発では、実装より先にAPIドキュメント(仕様)を書き、フロントエンドとバックエンドが並行して開発できる状態を作ります。良いAPIドキュメントは開発効率の大幅な向上をもたらします。
OpenAPI(Swagger)仕様
REST APIの業界標準仕様フォーマットです。YAML/JSONで記述すると、自動で対話型ドキュメント(Swagger UI)やクライアントコードが生成できます。
openapi: 3.0.0
info:
title: ユーザーAPI
version: 1.0.0
paths:
/users/{id}:
get:
summary: ユーザー情報を取得
parameters:
- name: id
in: path
required: true
schema:
type: integer
responses:
'200':
description: 成功
content:
application/json:
schema:
$ref: '#/components/schemas/User'
'404':
description: ユーザーが見つからない
components:
schemas:
User:
type: object
properties:
id:
type: integer
name:
type: string
email:
type: string
良いAPIドキュメントの要素
| 要素 | 内容 |
|---|---|
| 概要・目的 | このAPIが何のためにあるかを一言で |
| 認証方式 | API Key・OAuth・JWTの使い方 |
| エンドポイント一覧 | パス・メソッド・概要の一覧 |
| リクエスト詳細 | パラメータ・型・必須/任意・制約 |
| レスポンス例 | 成功・エラーの実際のJSONを掲載 |
| エラーコード一覧 | エラー時のコードと対処法 |
| サンプルコード | curl・Python・JSなど実例 |
主なAPIドキュメントツール
| ツール | 特徴 |
|---|---|
| Swagger UI / Redoc | OpenAPIから対話型ドキュメント自動生成 |
| Stoplight | GUIでOpenAPIを設計・管理 |
| Postman | APIテストとドキュメントを統合 |
| Notion / Confluence | 軽量なAPIドキュメント管理 |
歴史と背景
- 2010年:SwaggerがREST APIの記述フォーマットとして登場
- 2016年:SwaggerがOpenAPI Specificationとして標準化団体(OAI)に寄贈
- 現在:APIファースト・スキーマ駆動開発のベースとしてOpenAPIが事実上の標準に
関連用語
- REST API — APIドキュメントの主な対象
- GraphQL — スキーマがそのままドキュメントになるAPI形式
- ADR(アーキテクチャ決定記録) — APIの設計判断を記録するADR
- スキーマ駆動開発 — OpenAPIを先に書いて開発を進める手法
- CI/CDパイプライン — ドキュメントの自動生成・公開