## 5. API設計

確認：2026年9月

| 役割 | 既定 | 代替と乗り換え条件 |
|---|---|---|
| 外部公開API | **REST＋OpenAPI（スキーマファースト）** | GraphQL：クライアントが多様で取得項目の自由度が必要なとき |
| 同一リポジトリ内のフロント⇔バック（TS同士） | **Hono RPC** | Next.jsのServer Actions／Route Handlers：Next.jsの中で完結し、別プロセスのAPIを持たないとき。tRPC：既存のtRPC資産があるとき |
| サービス間通信 | **Connect（Protocol Buffers）** | gRPC：既存基盤 |
| OpenAPIの記述・Lint | **Redocly CLI** | Spectral：独自ルールを細かく書きたいとき |
| OpenAPIからTSクライアント生成 | **openapi-typescript＋openapi-fetch** | Orval：TanStack Queryのフックまで生成したいとき |
| APIドキュメントの公開 | **Scalar** | Redoc：静的なHTML1枚で配布したいとき |
| Protocol Buffersの管理 | **Buf** | — |
| GraphQL（採用時） | TS：**GraphQL Yoga＋Pothos**、Go：**gqlgen** | — |
| API手動テスト | **Bruno**（コレクションをGitで管理できる） | Postman：チームが既に使っているとき |
| Webhook受信の開発 | **ngrok**／**Cloudflare Tunnel** | — |
