背景
PR #179(OpenAPI v1.4.4)で、Conflict / NotFound レスポンスを $ref + sibling description パターンで上書きする方式を採用した。これは OpenAPI 3.1 仕様(JSON Schema 2020-12 採用)で正式に valid な記法だが、ツール側のサポートは不均一:
- OpenAPI 3.0.x では
$ref の兄弟キーは無視される(後方互換性のため)
- Swagger UI / Redoc / openapi-generator / spectral lint 等のバージョンによって、3.1 の sibling description を正しく扱うかは異なる
PR #179 のレビューで「ツール互換性事前確認推奨」が継続的に指摘された(計 3 回)。本フェーズはドキュメントのみで実害なしだが、Sprint 0 実装フェーズでクライアントコード生成 / API ドキュメント公開を行う段階で検証必須。
やること(Sprint 0 実装フェーズで対応)
主要ツールで本リポジトリの api/openapi.yaml(v1.4.4 以降)を実際に通し、sibling description が期待どおり上書き表示されるか検証する。
検証対象(候補)
- Swagger UI: API ドキュメント表示で description が各エンドポイントの具体的シナリオに上書きされているか
- Redoc: 同上
- openapi-generator(Java/TypeScript クライアント): 生成されたエラー型・docstring に description が反映されているか
- spectral lint: 仕様違反としてフラグされないか(本来は valid)
- swagger-cli validate: パース通過確認
検証結果による分岐
- 主要ツールで上書き機能が動作 → 現状の記法を維持
- 一部ツールで上書き無視 → 別 PR で代替記法に切り替え:
- 候補 1: 各エンドポイントで
$ref を使わず完全インライン化(冗長だが互換性確保)
- 候補 2:
description 部分だけ別パターン(例: responses の summary 等)
受け入れ条件
- 主要ツール 3 種以上で動作確認結果が記録されている
- 結果に応じた対応方針(現状維持 / 代替記法切替)が文書化されている
- 必要なら別 PR で OpenAPI 改訂
参照
背景
PR #179(OpenAPI v1.4.4)で、Conflict / NotFound レスポンスを
$ref+ siblingdescriptionパターンで上書きする方式を採用した。これは OpenAPI 3.1 仕様(JSON Schema 2020-12 採用)で正式に valid な記法だが、ツール側のサポートは不均一:$refの兄弟キーは無視される(後方互換性のため)PR #179 のレビューで「ツール互換性事前確認推奨」が継続的に指摘された(計 3 回)。本フェーズはドキュメントのみで実害なしだが、Sprint 0 実装フェーズでクライアントコード生成 / API ドキュメント公開を行う段階で検証必須。
やること(Sprint 0 実装フェーズで対応)
主要ツールで本リポジトリの
api/openapi.yaml(v1.4.4 以降)を実際に通し、sibling description が期待どおり上書き表示されるか検証する。検証対象(候補)
検証結果による分岐
$refを使わず完全インライン化(冗長だが互換性確保)description部分だけ別パターン(例:responsesの summary 等)受け入れ条件
参照