在 Swagger 文档请求中包含 cookie

13

我的Web服务API将检查请求中是否包含某个cookie,但我无法弄清楚如何将cookie包含在我的swagger文档API调用中。

我尝试了两种方法:

  1. 在我的.yaml文件中添加可编辑的cookie字段,如下所示:

  2. paths:
      /myApi/create:
        parameters:
          - name: Cookie
            in: header
            description: cookie
            required: true
            type: string
    
    在 Swagger UI 的 HTML 文件中添加:
  3. window.authorizations.add(
        "Cookie",
        new ApiKeyAuthorization("Cookie", 'Name=Val', 'header')
    )
    
    但是在这两种方法中,我的api都没有得到cookie,我想知道如何做到这一点?谢谢!

2个回答

10

从 https://github.com/OAI/OpenAPI-Specification/issues/161 看来,我实际上可以使用 "in: header" 设置 cookie。我想知道为什么我不能在我的方法中这样做?顺便说一下,我将字段值设置为 "name=value",但格式不应该是问题,因为我的 API 没有获取任何 cookie。谢谢! - Li-Fan Yu

7

也许现在已经有点晚了,但你应该查看以下示例:

swagger: '2.0'
info:
  version: '1'
  title: With Cookie Authentication
  description: With Cookie Authentication

securityDefinitions:
  myCookie:
    type: apiKey
    name: Cookie
    in: header
paths: 
  /say-hi:
    get:
      summary: Say Hello
      description: Say Hello
      responses:
        200:
          description: OK
      security:
        - myCookie: []

4
问题似乎在于浏览器不允许轻易设置称为“cookie”的标头,因为存在安全问题: 尝试设置被禁止的标头被拒绝:Cookie jquery-1.8.0.min.js - jgato

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接