416 文字
2 分
Railsで作ったREST APIをSwagger対応

背景#

概要#

郵便番号検索API

手順#

  • Gemfileswagger-docsを追加します。
    • しかしながら、masterブランチにバグがあり、pathにスラッシュが付かないので、forkされたgemを使います。

gemをインストールします。

Terminal window
$ bundle

swaggerの初期設定ファイルを作成します。
initializerをconfig/initializers/swagger_docs.rbに作成して、以下のようにAPIサーバの基本情報を書いておきます。

該当するControllerに、API仕様を追記します。
今回は、5行目から40行目を追記しました。

swaggerの定義ファイルをJSON形式で出力します。
以下のrakeタスクが、controllerを全て読んで、先ほど書いた設定をパースしてくれます。
(もし、deploy時に生成したい場合は以下のrakeタスクをcapistranoなどで実行するようにしておきます。)

Terminal window
% rake swagger:docs

上記のコマンドが実行されることにより、以下のファイルが出力されます。

デモ#

スクリーンショット#

swagger-doc

まとめ#

  • https://postcode.teraren.com/のAPIをswaggerで表現して、ローカルでテストしてみました。
  • swagger-docsの最終更新日は1年以上前で、重要な不具合があるので利用はオススメ出来ません。
  • grape-swaggerは活発そうです。
Railsで作ったREST APIをSwagger対応
https://blog.teraren.com/posts/rails-swagger-postcode-api/
作者
Yuki Matsukura
公開日
2015-12-03
ライセンス
CC BY-NC-SA 4.0

コメント