swagger-js:如何添加授权标头?

时间:2019-11-02 03:57:14

标签: node.js swagger

我正在尝试做一些非常简单的事情:在发布请求中添加api密钥授权标头。 到目前为止,我尝试过的事情:

  • 将其添加到requestOptions的标题键下
  • 在授权密钥下创建客户端时添加
    • 这是搜索空间开始扩大的地方:我要添加哪个键?安全类型apiKey?我在规格中给了它什么钥匙?实际的标题名称? (所有这些都不起作用,顺便说一句)

不幸的是,我在文档中找不到任何有用的信息(实际上,除了READMEFAQ页面之外,我找不到任何文档,它们在此问题上没有提供歧义)。 因此,将非常感谢任何实际示例和/或指向非官方文档,这些文档显示了如何使用此工具。

1 个答案:

答案 0 :(得分:0)

因此,从深入swagger-js code来看,“我在规范中给出的任何密钥”都是。意思是,如果您的安全方案如下所示:

components:
  securitySchemes:
    ymlSpecAuthKeyName: # <-- also swagger-js key
      type: apiKey
      name: X-Auth-Header-Name
      in: header

,您希望您的请求看起来像这样:

curl -X POST "http://your-api-url.com/doc-you-want-to-create" \
  -H  "X-Auth-Header-Name: api-key-header-value" \
  -H  "Content-Type: application/json" \ 
  -d "{\"json-request-body\": \"goes-here\"}"

然后,您应该像这样制作一个swagger-js客户端:

let client = await Swagger({
  spec: spec,
  authorizations: {
    ymlSpecAuthKeyName: 'api-key-header-value',
  }
});