Grape / Rails / Swagger UI でAPIサーバーを構築する②


※前回:Grape / Rails / Swagger UI でAPIサーバーを構築する①

前回でAPIを作成できたので、
今回はそのAPIをSwagger UIで
簡単に操作できるようにします。

gemをGemfileに追加します。

Gemfile
gem 'grape-swagger'

bundle install
で実行します

root.rbにadd_swagger_documentationを追加

/api/v1/root.rb
module V1
  class Root < Grape::API
    version :v1
    format :json

    mount V1::Users
    add_swagger_documentation(
      doc_version: '1.0.0',
      info: {
        title: 'テストAPI',
        description: 'APIドキュメントです'
      }
    )
  end
end

これで
http://localhost:3000/v1/swagger_doc

にアクセスすると


Swagger 用の JSON が返却されます!!!!

次にこれを Swagger UI で見れるようにします

Gemfile に以下を追記する。

Gemfile
gem 'swagger_ui_engine'

bundle install
で実行します

config/routes.rb を修正してルーティングを追加します。

config/initializersに以下のようなswagger_ui_engine.rbを作成します。

config/initializers/swagger_ui_engine.rb
SwaggerUiEngine.configure do |config|
  config.swagger_url = {
    v1: '/v1/swagger_doc'
  }
end

routes.rbmount SwaggerUiEngine::Engine, at: '/v1/docs'を追加します

config/routes.rb
Rails.application.routes.draw do


  mount SwaggerUiEngine::Engine, at: '/v1/docs'
end

再起動し
下にアクセスすると、
http://localhost:3000/v1/docs

今度は
Swagger UI が表示されるはずです!!!

簡単〜!!!!!!!!!!!!