swagger - 如何在 OpenAPI 3.0 中定义 header 参数?

标签 swagger openapi

在 OpenAPI (Swagger) 2.0 中,我们可以像这样定义 header 参数:

paths:
  /post:
    post:
      parameters:
        - in: header
          name: X-username

但是在 OpenAPI 3.0.0 中,参数被请求体替换,我找不到定义 header 参数的方法,这些参数将进一步用于身份验证。

在 OpenAPI 3.0.0 中定义请求 header 的正确方法是什么?

最佳答案

在 OpenAPI 3.0 中,头参数的定义方式与 OpenAPI 2.0 中相同,除了 type已替换为 schema :

paths:
  /post:
    post:
      parameters:
        - in: header
          name: X-username
          schema:
            type: string

如有疑问,请查看 Describing Parameters指导。

But in Swagger 3.0.0 parameters are replaced by request bodies.



这仅适用于表单和正文参数。其他参数类型(路径、查询、标题)仍定义为 parameters .

define header parameters, which would further be used for authentication.



定义身份验证相关参数的更好方法是使用 securitySchemes而不是在 parameters 中明确定义这些参数.安全方案用于 API key 、应用程序 ID/ secret 等参数。在您的情况下:

components:
  securitySchemes:
    usernameHeader:
      type: apiKey
      in: header
      name: X-Username

paths:
  /post:
    post:
      security:
        - usernameHeader: []
      ...

关于swagger - 如何在 OpenAPI 3.0 中定义 header 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50117059/

相关文章:

java - spring @Aspect 无法与 swagger2 一起使用

c# - 将 ISchemaFilter 示例转换为 Swashbuckle 5.0

go - 如何解决从openapi go代码生成器获取使用应用程序/x-www-form-urlencoded内容类型的API的验证错误?

swagger - 从 Scala 源代码 (http4s) 生成 Swagger/OpenAPI 规范

OpenAPI 鉴别器的一个默认值

python-3.x - Swagger/ flask : how to handle query parameters with dashes

spring - 来自 Spring Hateoas 的文档 HAL "_links"( Swagger )?

asp.net-core - NSwag AspNetCore 驼峰式生成设置

spring-boot - Swagger 中的 @ApiOperation 与 @ApiResponse

swagger - 如何使用 OpenAPI (Swagger) 描述多部分响应?