【问题标题】:How to define custom headers in OpenAPI 2.0 (Swagger 2.0)?如何在 OpenAPI 2.0 (Swagger 2.0) 中定义自定义标头?
【发布时间】:2019-04-18 06:34:36
【问题描述】:

我在为我的 OpenAPI (Swagger) 文档定义自定义请求标头时遇到问题。我查看了文档https://swagger.io/docs/specification/describing-parameters/#header-parameters,但我无法让它工作。

在下面的示例中,是一个具有正文的 POST 请求。我也希望它有一个像我的第二个 sn-p 一样的自定义标头,但这是无效的。

没关系:

 /search:
    post:
      tags:
        - Domain
      summary: Search for domains
      description: Returns a domain if it was found.
      produces:
        - application/json
      parameters:
        - in: body
          name: body
          description: Array of Domain Names
          required: true
          schema:
            $ref: '#/definitions/DomainNames'

这样不行:

  /search:
    post:
      tags:
        - Domain
      summary: Search for domains
      description: Returns a domain if it was found.
      produces:
        - application/json
      parameters:
       - in: header
          name: X-Request-ID
          schema:
            type: string
            format: uuid
          required: true
        - in: body
          name: body
          description: Array of Domain Names
          required: true
          schema:
            $ref: '#/definitions/DomainNames'

- in: header 行我收到以下错误:

路径['/search'].post.parameters[0].in 处的架构错误
应等于允许值之一
allowedValues:正文、标题、formData、查询、路径
跳转到第 37 行

路径中的架构错误['/search'].post.parameters[0]
不应有其他属性
附加属性:架构、输入、名称
跳转到第 37 行

我在这里缺少什么?标题显示在渲染的 Swagger UI 中,但我无法“保存”它,因为它无效。

【问题讨论】:

    标签: swagger swagger-2.0 swagger-editor


    【解决方案1】:

    您链接到的指南适用于 OpenAPI 3.0(如该页面顶部所示)。对应的 OpenAPI 2.0 指南在这里:Describing Parameters

    在 OpenAPI 2.0 中,path/header/query/form 参数不使用schema,而是直接使用type 关键字。

    另外,您示例中的- in: header 行缩进不够,您需要在它之前再添加一个空格以使其与其他行对齐。

    这是正确的版本:

          parameters:
            - in: header     # <----
              name: X-Request-ID
              type: string   # <----
              format: uuid   # <----
              required: true
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    • 1970-01-01
    相关资源
    最近更新 更多