Back to skills
extension
Category: Development & EngineeringNo API key required

implementing-rails-api

The skill to implement APIs and admin panels with Ruby on Rails based on the API specifications defined in JSON. Will perform overall orchestration and proceed with implementation following detailed guidelines for each step.

personAuthor: jakexiaohubgithub

概要

このスキルは、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: @steps/13c_admin_hotwire.md
  • 共通設定・トラブルシューティング: @steps/13d_admin_common.md

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