BlueAI株式会社BlueAI
コード生成上級

OpenAPI 仕様から API エンドポイント実装

openapi.yaml の定義を元に handler / service / repository を一括生成するプロンプト。

平原尚樹
監修: 平原尚樹

株式会社BlueAI 代表取締役CEO / ソフトウェアエンジニア / プロダクトエンジニア / Google Cloud Architect / 元AIスタートアップ(Doorkel)

酒井歩乃加
監修: 酒井歩乃加

早稲田大学文化構想学部卒業 / フリーランス編集者・ライター / 元マイベスト編集ディレクター / SEO対策記事・取材記事執筆

こんな課題を解決

OpenAPI 仕様を先に書いたが、それを Go や Node のハンドラに落とすボイラープレートが多い。仕様と実装のズレも防ぎたい。

プロンプト

Claude Code に入力

openapi/openapi.yaml に定義済みの POST /api/v1/forms エンドポイントを実装してください。

## 参照
- 仕様 path: paths./api/v1/forms.post
- リクエスト/レスポンススキーマは openapi.yaml の components から参照
- 既存の handler → service → repository レイヤを踏襲

## 実装範囲
1. internal/http/forms.go に CreateForm ハンドラ追加
2. internal/service/forms/service.go に CreateForm ビジネスロジック
3. sql/queries/forms.sql に Insert クエリ追加 → sqlc generate
4. ルーター登録(internal/server/router.go)
5. テスト(ハンドラ + サービス両方)

## 規約
- リクエスト検証は go-playground/validator
- 認可は middleware.RequireOrg 経由で org_id を必ず付与
- エラーレスポンスは既存の APIError 型に統一
- 監査ログ: audit.Record("form.create", ...) を service 層で記録

実行結果の例

Claude Code が以下を生成します。 - internal/http/forms.go: CreateForm ハンドラ(30行程度) - internal/service/forms/service.go: CreateForm メソッド - sql/queries/forms.sql に INSERT 文追加 - 生成後の sqlcgen/forms.sql.go diff - 各層のテストファイル

コツ・ポイント

  • openapi.yaml を Claude が読めるよう事前に @ で添付すると精度が上がる
  • make sqlc-generate と make openapi-generate も実行するよう指示する
  • 認可ミドルウェアの名前は CLAUDE.md に書いておくと毎回省略できる
  • 監査ログ要件はサービスごとに違うので明示する

Claude Code を体系的に学びませんか?

全10章・30レッスン無料公開中

第1章から始める