Skip to content

examples/rails_app に Swagger API ドキュメントを実装 #46

@yellow-seed

Description

@yellow-seed

概要

examples/rails_app のAPIに対して、Swagger(OpenAPI)仕様のAPIドキュメントを実装します。

目的

  1. サンプルAPIの可視化

    • crypto_wallet_tool gem の機能をどのようなAPIで利用できるかを明確に示す
    • 各エンドポイントの使用例やパラメータを文書化し、利用者がイメージしやすくする
  2. 動作確認の効率化

    • Swagger UI を通じて実際にAPIを叩けるため、そのままGemの動作確認ツールとして活用できる
    • 開発者やユーザーが手軽に機能をテストできる環境を提供

実装タスク

1. Swagger/OpenAPI の導入

  • rswag gem または 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の機能を素早く把握し、試すことができる

参考情報

備考

  • API実装時は適切なエラーハンドリングを含める
  • セキュリティ面を考慮し、本番環境での使用は想定しない(あくまでサンプル・検証用)
  • 環境変数でRPCエンドポイントURLを設定できるようにする

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentationenhancementNew feature or requestexamples

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions