-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or requestexamples
Description
概要
examples/rails_app のAPIに対して、Swagger(OpenAPI)仕様のAPIドキュメントを実装します。
目的
-
サンプルAPIの可視化
- crypto_wallet_tool gem の機能をどのようなAPIで利用できるかを明確に示す
- 各エンドポイントの使用例やパラメータを文書化し、利用者がイメージしやすくする
-
動作確認の効率化
- Swagger UI を通じて実際にAPIを叩けるため、そのままGemの動作確認ツールとして活用できる
- 開発者やユーザーが手軽に機能をテストできる環境を提供
実装タスク
1. Swagger/OpenAPI の導入
-
rswaggem またはgrape-swaggerなどの導入を検討 - Swagger設定ファイルの作成(
swagger_helper.rbなど) - OpenAPI 3.0 仕様に準拠したドキュメント構造の設定
2. API エンドポイントの実装
crypto_wallet_tool gem の主要機能をカバーするAPIエンドポイントを作成:
Client 機能(Ethereum JSON-RPC)
-
POST /api/v1/ethereum/transaction- トランザクション情報の取得 -
POST /api/v1/ethereum/block- ブロック情報の取得 -
POST /api/v1/ethereum/balance- アドレスの残高取得 - その他の eth_* メソッド
Converter 機能
-
POST /api/v1/converter/wei_to_ether- Wei から Ether への変換 -
POST /api/v1/converter/ether_to_wei- Ether から Wei への変換 - その他の変換機能
Transaction Debugger 機能
-
POST /api/v1/debug/transaction- トランザクションのデバッグ情報取得 -
POST /api/v1/debug/receipt- トランザクションレシート情報の取得
3. Swagger UI の設定
- Swagger UI エンドポイントの作成(例:
/api-docs) - APIドキュメントの自動生成設定
- 開発環境での動作確認
4. ドキュメント整備
- 各エンドポイントの詳細な説明
- リクエスト/レスポンスのサンプル
- エラーハンドリングの文書化
- README への Swagger UI アクセス方法の追記
期待される成果
- examples/rails_app を起動すると
/api-docsで Swagger UI にアクセスできる - Swagger UI 上で各APIのパラメータを入力し、実際にリクエストを送信できる
- レスポンスがリアルタイムで確認でき、gem の機能を直感的に理解できる
- 新規ユーザーがGemの機能を素早く把握し、試すことができる
参考情報
- rswag - Rails で Swagger を使うための gem
- OpenAPI Specification - OpenAPI 3.0 仕様
- Swagger UI - Swagger ドキュメントの UI
備考
- API実装時は適切なエラーハンドリングを含める
- セキュリティ面を考慮し、本番環境での使用は想定しない(あくまでサンプル・検証用)
- 環境変数でRPCエンドポイントURLを設定できるようにする
Copilot
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or requestexamples