openapi-to-application-code について
OpenAPI 仕様からアプリケーション一式を生成する開発スキルです。仕様の分析からレイヤー設計、コードやテストの生成、関連ドキュメントと設定の作成までを扱います。
主な機能
- 01エンドポイント、スキーマ、セキュリティの分析
- 02プロジェクト構成、コントローラー、サービスの生成
- 03モデル、データアクセス層、設定の作成
- 04テスト、ドキュメント、リクエスト例の追加
活用シーン
- 01OpenAPI 仕様からアプリケーションの土台を作成
- 02API 定義に基づくコントローラーとモデルの生成
- 03テスト、セットアップ手順、リクエスト例の追加
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ github/ awesome-copilot --skill openapi-to-application-codeインストール後、Claude Code で/openapi-to-application-codeを入力して読み込まれたか確認します。
詳細
OpenAPI 仕様からアプリケーションを生成する
あなたの目標は、OpenAPI 仕様から、使用中のフレームワークの規約とベストプラクティスに従って、完全に動作するアプリケーションを生成することです。
入力要件
-
OpenAPI 仕様: 次のいずれかを提供してください:
- OpenAPI 仕様への URL(例:
https://api.example.com/openapi.json) - OpenAPI 仕様へのローカルファイルパス
- OpenAPI 仕様の完全な内容を直接貼り付け
- OpenAPI 仕様への URL(例:
-
プロジェクトの詳細(仕様に含まれていない場合):
- プロジェクト名と説明
- 対象フレームワークとバージョン
- パッケージ/名前空間の命名規則
- 認証方式(OpenAPI で指定されていない場合)
生成プロセス
ステップ 1: OpenAPI 仕様を分析する
- OpenAPI 仕様の完全性と正確性を検証します
- すべてのエンドポイント、HTTP メソッド、リクエスト/レスポンススキーマを特定します
- 認証要件とセキュリティスキームを抽出します
- データモデルの関連性と制約を確認します
- あいまいな点や不完全な定義に印を付けます
ステップ 2: アプリケーションアーキテクチャを設計する
- フレームワークに適したディレクトリ構造を計画します
- リソースまたはドメインごとにコントローラー/ハンドラーのグループ化を特定します
- ビジネスロジックのためのサービス層の構成を設計します
- データモデルとエンティティの関連性を計画します
- 構成と初期化の戦略を設計します
ステップ 3: アプリケーションコードを生成する
- ビルド/パッケージ構成ファイルを含むプロジェクト構造を作成します
- OpenAPI スキーマからモデル/DTO を生成します
- ルートマッピングを含むコントローラー/ハンドラーを生成します
- ビジネスロジックを含むサービス層を生成します
- 該当する場合はリポジトリ/データアクセス層を生成します
- エラー処理、バリデーション、ロギングを追加します
- 構成と起動コードを生成します
ステップ 4: 補助ファイルを追加する
- サービスとコントローラーに適した単体テストを生成します
- セットアップと実行手順を含む README を作成します
- .gitignore と環境構成のテンプレートを追加します
- API ドキュメントファイルを生成します
- リクエスト例/統合テストを作成します
出力構造
生成されるアプリケーションには次が含まれます:
project-name/
├── README.md # Setup and usage instructions
├── [build-config] # Framework-specific build files (pom.xml, build.gradle, package.json, etc.)
├── src/
│ ├── main/
│ │ ├── [language]/
│ │ │ ├── controllers/ # HTTP endpoint handlers
│ │ │ ├── services/ # Business logic
│ │ │ ├── models/ # Data models and DTOs
│ │ │ ├── repositories/ # Data access (if applicable)
│ │ │ └── config/ # Application configuration
│ │ └── resources/ # Configuration files
│ └── test/
│ ├── [language]/
│ │ ├── controllers/ # Controller tests
│ │ └── services/ # Service tests
│ └── resources/ # Test configuration
├── .gitignore
├── .env.example # Environment variables template
└── docker-compose.yml # Optional: Docker setup (if applicable)
適用されるベストプラクティス
- フレームワークの規約: フレームワーク固有の命名、構造、パターンに従います
- 関心の分離: コントローラー、サービス、リポジトリによる明確なレイヤー化
- エラー処理: 意味のある応答を伴う包括的なエラー処理
- バリデーション: 全体にわたる入力バリデーションとスキーマバリデーション
- ロギング: デバッグと監視のための構造化ロギング
- テスト: サービスとコントローラーの単体テスト
- ドキュメント: インラインコードドキュメントとセットアップ手順
- セキュリティ: OpenAPI 仕様に基づく認証/認可の実装
- スケーラビリティ: 成長と保守を支える設計パターン
次のステップ
生成後:
- 生成されたコード構造を確認し、必要に応じてカスタマイズします
- フレームワークの要件に従って依存関係をインストールします
- 環境変数とデータベース接続を構成します
- テストを実行して生成されたコードを検証します
- 開発サーバーを起動します
- 提供された例を使用してエンドポイントをテストします
必要に応じて尋ねるべき質問
- アプリケーションにデータベース/ORM のセットアップを含めるべきですか、それともインメモリ/モックデータだけでよいですか?
- コンテナ化のための Docker 構成が必要ですか?
- 認証は JWT、OAuth2、API キー、ベーシック認証のどれにすべきですか?
- 統合テストが必要ですか、それとも単体テストだけでよいですか?
- 特定のデータベース技術の希望はありますか?
- API にページネーション、フィルタリング、ソートの例を含めるべきですか?
コメント
Markdown 対応