Conversation
There was a problem hiding this comment.
Pull request overview
既存バックエンド API の OpenAPI 3.0 定義(openapi.yaml)を新規追加し、各エンドポイント/リクエスト/レスポンスのスキーマをドキュメント化する PR です。
Changes:
- OpenAPI 3.0.3 の定義ファイルを新規追加
- User / Charge / Purchase / Balance / Item / Health の各 API を paths と schemas で記述
- 共通の
ErrorResponse、パラメータ(UserId)を components に定義
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| /v1/user: | ||
| post: | ||
| tags: [user] | ||
| summary: ユーザー登録 | ||
| operationId: registerUser |
There was a problem hiding this comment.
POST のユーザー登録エンドポイントが /v1/user と定義されていますが、実装側は app/server/server.go:95-97 で /v1/user/(r.Post("/"))を登録しており、middleware.StripSlashes 等が無い限り /v1/user では 404 になる可能性があります。OpenAPI 側を /v1/user/ に合わせるか、サーバ側でスラッシュ正規化(StripSlashes/RedirectSlashes)を入れて /v1/user と /v1/user/ の両方を受けるようにしてください。
| /v1/item: | ||
| post: | ||
| tags: [item] | ||
| summary: 商品登録 | ||
| operationId: registerItem | ||
| requestBody: |
There was a problem hiding this comment.
/v1/item の POST/PATCH/GET(一覧) がスラッシュ無しで定義されていますが、実装は app/server/server.go:106-112 で /v1/item/(r.Post("/"), r.Patch("/"), r.Get("/"))として登録されています。スラッシュ正規化ミドルウェアが無い場合、ドキュメント通り /v1/item を叩くと一致しないため、OpenAPI のパスを /v1/item/ にするかサーバ側で /v1/item も受けるよう統一してください。
| /v1/health: | ||
| get: | ||
| tags: [health] | ||
| summary: ヘルスチェック | ||
| operationId: healthCheck |
There was a problem hiding this comment.
ヘルスチェックが /v1/health と定義されていますが、実装側は app/server/server.go:114-117 で /v1/health/(r.Get("/"))を登録しています。スラッシュ正規化が無い場合に実際の到達パスとズレるので、OpenAPI のパスを /v1/health/ に合わせるか、サーバ側で /v1/health と /v1/health/ を両対応にしてください。
OpenAPIを作成