如何从 swagger 发送 header 参数

How to send header parameters from swagger

用于测试 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 发送 headers?

我们可以在 api 声明中为字段设置参数类型 header,然后该字段会在 swagger ui 上填充并在 header 中作为 header 发送打电话。

我在 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

访问open api specification for more on the parameter object

能否请您尝试添加以下内容并检查是否有效

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

Rakesh 的回答是正确的。为了简化,在 swagger_api 块中使用它:

param :header, 'SessionToken', :string, :required, "SessionToken"