2016-08-16 66 views
2

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

我已经试过两种方法:

  1. 添加饼干在我.yaml文件这样的编辑字段。

    paths: 
        /myApi/create: 
        parameters: 
         - name: Cookie 
         in: header 
         description: cookie 
         required: true 
         type: string 
    
  2. 在招摇UI的HTML文件,添加

    window.authorizations.add(
        "Cookie", 
        new ApiKeyAuthorization("Cookie", 'Name=Val', 'header') 
    ) 
    

但在这两个办法我的API没有得到cookie的,我想知道我怎么能做到这一点?谢谢!

回答

2

OpenAPI/Swagger spec 2.0不支持cookie身份验证。对于下一个版本(3.0),讨论支持它可以在下面找到:

https://github.com/OAI/OpenAPI-Specification/issues/15

UPDATE:OpenAPI的规格3.0将支持cookiehttps://github.com/OAI/OpenAPI-Specification/blob/OpenAPI.next/versions/3.0.md#parameter-locations

+0

从https://github.com/OAI/OpenAPI-Specification/issues/161,看来我可以“的:标题”实际运用中设置cookie的。我想知道为什么我不能在我的方法中做到这一点?顺便说一句我把字段值作为“名称=值”,但格式不应该是问题,因为我的api没有得到任何cookie。谢谢! –

1

也许为时已晚,但你应该检查following例如:

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: [] 
+1

看来问题在于,由于安全问题,浏览器不允许设置称为cookie的标头: 尝试设置禁止标头被拒绝:Cookie jquery-1.8.0.min.js – jgato