如何在 OpenAPI 3 中使用自定义前缀定义授权标头?

Joe*_*izz 9 authorization openapi

我正在寻找正确的方法来指定Authorization具有自定义类型/前缀(如 OpenAPI 3 中的“ApiKey”)的标头。

自定义Authorization标头应该类似于

Authorization: ApiKey myAPIKeyHere
Run Code Online (Sandbox Code Playgroud)

我所有指定securitySchemes条目的尝试type: apiKey似乎都会产生其他结果......

我得到的最接近的是这样的:

Authorization: ApiKey myAPIKeyHere
Run Code Online (Sandbox Code Playgroud)

...但这会生成ApiKey: myAPIKeyHere标头而不是Authorization: ApiKey myAPIKeyHere.

这样的要求如何具体化呢?

Joe*_*izz 9

我想我已经找到了一种似乎可以接受的方法——尽管并不完美。希望未来能看到更好的东西……

似乎除了将自定义类型添加到值之外没有其他方法(由如下描述辅助)。

components:
  securitySchemes:
      ApiKey:
         type: apiKey
         name: Authorization
         in: header
         description: 'Prefix the value with \"ApiKey\" to indicate the custom authorization type' 
security:
   - ApiKey: []
Run Code Online (Sandbox Code Playgroud)

这至少会在curl中产生正确的标头(如果应用正确)。

  • 这是正确的答案。没有直接的方法来为“Authorization”标头定义自定义前缀(即与 [IANA 注册](https://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml) 不同的前缀HTTP 身份验证方案)。解决方法是在描述字段中提及此自定义前缀,以便 API 使用者提供此前缀作为标头值的一部分。 (2认同)