为了测试rails api,我使用的是Swagger。
module Api
class UserController < ApplicationController
Swagger::Docs::Generator::set_real_methods
skip_before_filter :verify_authenticity_token
# start swagger actions
swagger_controller :users, "Users"
swagger_api :create do
summary "SignUp"
param :form, :first_name, :string, :optional, "First Name"
param :form, :last_name, :string, :optional, "Last Name"
param :form, :phone_no, :string, :required, "Phone Number"
param :form, :email, :string, :optional, "Email"
param :form, :password, :string, :required, "Password"
param :form, :password_confirmation, :string, :required, "Confirm Password"
end
我通过访问令牌使用身份验证。 但是如何从swagger发送标题?
答案 0 :(得分:1)
我们可以为api delcaration上的字段设置paramtype标头,然后在swagger ui上填充字段并在调用中作为标头发送。
答案 1 :(得分:1)
我正在使用Sinatra的swagger块,所以语法可能有点不同,但这对我有用。
像这样使用key :in, :header
:
parameter do
key :name, 'X-APPLICATION-ID'
key :in, :header
key :description, 'client name'
key :required, false
key :type, :string
end
答案 2 :(得分:1)
您可以尝试添加以下内容并检查是否有效
param :header, 'Authentication-Token', :string, :required, 'Authentication token'
如果您觉得在所有控制器上添加此功能很麻烦,您可以执行类似
的操作def setup_basic_api_documentation
[:controller1, :controller2, :controller3].each do |api_action|
swagger_api api_action do
param :header, 'Authentication-Token', :string, :required, 'Authentication token'
end
答案 3 :(得分:1)
拉克什的回答是正确的。为简化起见,请在swagger_api块中使用它:
param :header, 'SessionToken', :string, :required, "SessionToken"