Я строю систему с rails6 и grape, grape-swagger, swagger_ui_engine.
Я могу получить доступ к интерфейсу swagger ui, но он говорит "Не могу прочитать swagger JSON из http://localhost:3000/swagger_docs/v1/swagger.yaml"
Я знаю, что могу изменить путь к swagger.yaml на rails / config / initializers / swagger.rb
SwaggerUiEngine.configure do |config|
config.swagger_url = {
v1: 'swagger.yaml'
}
end
Проблема в том, что я не знаю, где grape-swagger генерирует документ swagger. Есть ли способ узнать его? (Перед этим Нужно ли что-нибудь сделать для генерации документа swagger? Я считаю, что grape-swagger генерирует документ автоматически)
Это вывод моих маршрутов, кажется, что Виноградная чушь не генерирует документ чванства?
daisuke@78eaf4dac6cc:/rails$ bin/rake routes|grep 'swagger\|Prefix'
Prefix Verb URI Pattern Controller#Action
swagger_ui_engine / SwaggerUiEngine::Engine
oauth2_swagger_docs GET /swagger_docs/oauth2 swagger_ui_engine/swagger_docs#oauth2
swagger_docs GET /swagger_docs swagger_ui_engine/swagger_docs#index
swagger_doc GET /swagger_docs/:id swagger_ui_engine/swagger_docs#show
single_swagger_doc GET /single_swagger_doc swagger_ui_engine/swagger_docs#single_doc
root GET / swagger_ui_engine/swagger_docs#index
daisuke@78eaf4dac6cc:/rails$
И это мои маршруты.rb
Rails.application.routes.draw do
root 'sessions#show'
get '/auth/:provider/callback', to: 'sessions#create'
get '/signout', to: 'sessions#destroy'
mount SwaggerUiEngine::Engine, at: '/'
mount V1::Root => '/api/v1'
end
root.rb для монтирования API
require 'grape'
module V1
class Root < Grape::API # :nodoc:
default_format :json
mount Users::Api => '/users'
add_swagger_documentation
end
end