implementing-rails-api
JSONで定義されたAPI仕様を元にRuby on RailsでAPIと管理画面を実装するスキル。全体のオーケストレーションを行い、各ステップの詳細ガイドラインに従って実装を進めます。
When & Why to Use This Skill
This Claude skill automates the end-to-end development of Ruby on Rails 8.1 APIs and administrative interfaces based on JSON specifications. It orchestrates the entire backend lifecycle, including PostgreSQL 18 database design, OpenAPI 3.1 documentation, Active Record modeling, and the implementation of robust RESTful endpoints alongside integrated admin panels like ActiveAdmin or Hotwire.
Use Cases
- Rapidly bootstrapping a production-ready Rails API backend from a JSON schema or Headless CMS (e.g., microCMS) specification.
- Generating comprehensive administrative dashboards using ActiveAdmin, Administrate, or Hotwire for efficient data management.
- Automating the creation of OpenAPI 3.1 documentation and interactive API Playgrounds to facilitate seamless frontend-backend integration.
- Implementing optimized database schemas with advanced PostgreSQL features, including GIN indexes and full-text search, tailored to specific use cases.
- Refactoring existing JSON data structures into a structured Rails application with full CRUD capabilities, validations, and N+1 query prevention.
| name | orchestrating-api-implementation |
|---|---|
| description | JSONで定義されたAPI仕様を元にRuby on RailsでAPIと管理画面を実装するスキル。全体のオーケストレーションを行い、各ステップの詳細ガイドラインに従って実装を進めます。 |
概要
このスキルは、JSONで定義されたAPI仕様に基づいて、Ruby on Rails + PostgreSQLでAPIと管理画面を実装します。
このスキルを使用するタイミング
Claudeは以下の状況でこのスキルを使用します:
- ユーザーがJSON形式のAPI仕様を提供し、Rails APIの実装を依頼した場合
- microCMSなどのHeadless CMSの仕様からRails APIを生成する場合
- 既存のJSON仕様ファイル(app.jsonなど)を参照してAPI実装を依頼された場合
- 「APIを実装して」「管理画面を作成して」といったリクエストでJSON仕様が存在する場合
技術スタック
| 項目 | 技術 |
|---|---|
| 言語 | Ruby 3.4 |
| フレームワーク | Ruby on Rails 8.1 |
| データベース | PostgreSQL 18 |
| ORM | Active Record |
ステップ
各ステップの詳細は steps/ ディレクトリ内のファイルを参照してください。
1. アプリケーション仕様を確認する
詳細: @steps/01_check_specification.md
Claudeは、JSON仕様ファイルを読み込み、モデル構造・フィールド定義・リレーションを把握します。 仕様形式: @references/01_json_specification.md
2. 技術スタックを決定する
詳細: @steps/02_select_tech_stack.md
Claudeは、環境確認と管理画面の方式(ActiveAdmin / Administrate / Hotwire)を決定します。
3. ユースケースを洗い出す
詳細: @steps/03_define_usecases.md
Claudeは、JSON仕様のアクター・ユースケースを確認し、各モデルのCRUD操作、ページネーション、フィルタリング、ソート、リレーション取得方法を定義します。
4. OpenAPI定義を作成する
詳細: @steps/04_define_openapi.md
Claudeは、ユースケースとモデル定義に基づいて、APIの仕様をOpenAPI 3.1形式で定義します。
5. DBスキーマを設計する
詳細: @steps/05_design_db_schema.md
Claudeは、JSON仕様の型をPostgreSQLの型にマッピングし、テーブル設計を行います。
6. SQLとインデックスを定義する
詳細: @steps/06_define_sql_and_indexes.md
Claudeは、ユースケースで実行されるSQLを洗い出し、通常インデックスと全文検索インデックス(GIN + tsvector)を定義します。
7. プロジェクトを初期化する
詳細: @steps/07_initialize_project.md
Claudeは、Rails 8.1プロジェクトを作成し、必要なGemと設定をセットアップします。
8. DBマイグレーションを実装する
詳細: @steps/08_implement_migration.md
Claudeは、設計に基づいてマイグレーションファイルを作成・実行します。
9. ORマッピングを実装する
詳細: @steps/09_implement_orm.md
Claudeは、Active Recordモデルにリレーション、スコープ、クエリメソッドを実装します。
10. バリデーションを実装する
詳細: @steps/10_implement_validation.md
Claudeは、JSON仕様のvalidation設定に基づいてActive Recordバリデーションを実装します。
11. APIエンドポイントを実装する
詳細: @steps/11_implement_api_endpoints.md
Claudeは、RESTful APIエンドポイント(CRUD、ページネーション、フィルタリング、ソート)を実装します。
12. APIの動作確認を行う
詳細: @steps/12_verify_api.md
Claudeは、curlとRSpecでAPIの動作を検証し、N+1問題がないことを確認します。
13. 管理画面を実装する
Claudeは、選択した方式で管理画面を実装します。方式に応じて以下のファイルを参照してください:
- ActiveAdmin: @steps/13a_admin_activeadmin.md
- Administrate: @steps/13b_admin_administrate.md
- Hotwire: @/backend_development/skills/implementing-hotwire-admin/SKILL.md (独立スキルを使用)
- 概要とクイックリファレンス: @steps/13c_admin_hotwire.md
- 共通設定・トラブルシューティング: @steps/13d_admin_common.md
Note: Hotwire管理画面を実装する場合は、E2Eテスト設計・実装も含む包括的な
implementing-hotwire-adminスキルを使用してください。
14. API Playgroundを実装する(オプション)
詳細: @steps/14_implement_api_playground.md
Claudeは、OpenAPI定義を活用してSwagger UIまたはカスタムPlaygroundを実装し、APIを対話的にテストできる環境を構築します。
ファイル構成
implementing-rails-api/
├── SKILL.md # このファイル
├── references/
│ └── 01_json_specification.md # JSON仕様の定義
└── steps/
├── 01_check_specification.md
├── 02_select_tech_stack.md
├── 03_define_usecases.md
├── 04_define_openapi.md
├── 05_design_db_schema.md
├── 06_define_sql_and_indexes.md
├── 07_initialize_project.md
├── 08_implement_migration.md
├── 09_implement_orm.md
├── 10_implement_validation.md
├── 11_implement_api_endpoints.md
├── 12_verify_api.md
├── 13a_admin_activeadmin.md
├── 13b_admin_administrate.md
├── 13c_admin_hotwire.md
├── 13d_admin_common.md
└── 14_implement_api_playground.md