Swagger UI添加curl自定义参数

时间:2018-04-24 09:13:55

标签: swagger swagger-ui openapi

Swagger UI拒绝使用自签名证书 https 发出请求。

接下来是问题:

TypeError: Failed to fetch

上面的命令由swagger自动生成,运行后返回:

curl: (60) SSL certificate problem: self signed certificate
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

手动(不使用Swagger UI)运行返回:

curl -X POST "https://localhost:8088/Authenticate" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"username\": \"user\", \"password\": \"user\"}" --insecure


我想让它像下一个(添加 - 不安全参数):

df1

这将允许我执行所需的请求。有没有办法将自定义参数添加到自动生成的Swagger卷曲?感谢。

2 个答案:

答案 0 :(得分:2)

首先,cURL命令仅用于显示和复制粘贴。 Swagger UI实际上并未将cURL用于请求 - 它是一个网页,因此它使用JavaScript(fetch APIXMLHttpRequest或类似网站)发出请求。

正如here所述,Swagger UI不支持自签名证书(强调我的):

  

您的证书似乎有问题。 由于我们无法控制的安全原因,Swagger-UI(或任何浏览器内应用程序)无法绕过浏览器内置的证书验证流程。

     

您似乎拥有自签名证书。您将要了解如何让您的计算机信任您的证书,这是Google Chrome的指南,您可以使用它:

     

Getting Chrome to accept self-signed localhost certificate

因此,如果您想使用Swagger UI测试使用自签名证书的服务器,您需要配置您的浏览器(或您的计算机)以信任该证书。查看这些问题以获取建议:

Chrome: Getting Chrome to accept self-signed localhost certificate
Firefox: Is there a way to make Firefox ignore invalid ssl-certificates?


  

有没有办法将自定义参数添加到自动生成的Swagger卷曲?

生成cURL命令的代码存在于此:
https://github.com/swagger-api/swagger-ui/blob/master/src/core/curlify.js

您可以根据需要分叉Swagger UI并调整代码。

但如上所述 - 更改显示的cURL命令不会改变实际的"尝试一下"行为,因为"尝试出来"无法绕过证书验证。

答案 1 :(得分:0)

真正的问题是我的OPTIONS响应标头与我未来的POST请求标头不匹配,因为我必须使用CORS