私はthis Swagger tutorialに従っていました。私はsample app's repoのすべての関連する問題を見ましたが、どれも私のために働いていませんでした。Rails 5、Swagger UIがコントローラ用のドキュメントjsonファイルを生成しない
私がrake swagger:docs
を実行すると、それはの下にusers.json
というファイルを生成するはずです。ファイルはapi-docs.json
です。 また、端末でメッセージ1.0: 0 processed/4 skipped
を出します。
問題を解決しなかったSwagger::Docs::Config.base_api_controller = ActionController::API
を追加しようとしました。
基本ファイルの共有。さらなる情報が必要な場合は、喜んでそれらをあなたと共有します。あなたが本当にここにこだわってくれることを願っています。ありがとうございました。
swagger_docs.rb
# config/initializers/swagger-docs.rb
Swagger::Docs::Config.base_api_controller = ActionController::API
Swagger::Docs::Config.register_apis({
"1.0" => {
:api_file_path => "public/",
:base_path => "http://localhost:3000",
:clean_directory => true,
:base_api_controller => ActionController::API,
:attributes => {
:info => {
"title" => "Swagger Doc",
"description" => "Sample app shows how to setup swagger for your Ruby APIs",
"contact" => "[email protected]",
"license" => "Apache 2.0",
"licenseUrl" => "http://www.apache.org/licenses/LICENSE-2.0.html"
}
}
}
})
users_controller.rb
class Api::V1::UsersController < ApplicationController
swagger_controller :users, "User Management"
# /api/v1/users create documentation
swagger_api :create do
summary "To create user"
notes "Implementation notes, such as required params, example queries for apis are written here."
param :form, "user[name]", :string, :required, "Name of user"
param :form, "user[age]", :integer, :optional, "Age of user"
param_list :form, "user[status]", :string, :required, "Status of user, can be active or inactive"
response :success
response :unprocessable_entity
response :500, "Internal Error"
end
# POST /api/v1/users
def create
...
end
...
end
そしてここapi-docs.json
{
"apiVersion": "1.0",
"swaggerVersion": "1.2",
"basePath": "http://localhost:3000",
"apis": [
],
"authorizations": null,
"info": {
"title": "Swagger Doc",
"description": "Sample app shows how to setup swagger for your Ruby APIs",
"contact": "[email protected]",
"license": "Apache 2.0",
"licenseUrl": "http://www.apache.org/licenses/LICENSE-2.0.html"
}
}
生成だけです