我正在使用swagger来构建API文档。我是新手。我正在做的是首先登录和给列表API打电话。但是作为会话,cookie不会被维护,列表调用不会被执行。您需要先登录该应用程序,然后拨打该列表。 我怎样才能在招摇编辑器http://editor.swagger.io/#/
中完成三江源
答案 0 :(得分:2)
我只是花了一些时间来讨论同样的问题,据我所知,Swagger编辑器不会使用xhr.withCredentials = true
进行API调用,这意味着即使服务器的CORS策略,您的浏览器也不会发送cookie允许它。有一些关于更新Swagger编辑器以允许选项执行此操作的讨论(例如,https://github.com/swagger-api/swagger-js/issues/251),但它似乎还没有完成。
您最好的选择可能是通过在您自己的域上托管Swagger编辑器来避免整个跨源安全问题。这是其中一项建议:https://github.com/swagger-api/swagger-editor/blob/master/docs/cors.md#host-swagger-editor-in-your-own-domain。只需将它作为您自己开发网站上的某个应用程序运行即可。
另一个建议是禁用Chrome网络安全:https://github.com/swagger-api/swagger-editor/blob/master/docs/cors.md#run-swagger-editor-in-a-browser-that-ignores-http-access-control。我没试过这个但是它可能不起作用,因为Swagger Editor仍然没有正确设置XHR请求。
最后,如果您熟悉docker,则可以运行Swagger Editor泊坞窗实例并将所有内容链接起来。这很复杂,但我通过以下方式实现了这一点:
http://localhost/dev/swagger-editor/
的请求被代理转发到swagger docker容器,并且对http://localhost/api/
的任何请求都被代理转发到你的后端。这样浏览器只能看到localhost
的请求,一切正常。但是你需要愿意进入docker和nginx反向代理配置才能有一个合理的期望你会成功。否则这可能是另一个兔子洞。祝你好运!