我按照说明使用swagger-jsdoc为现有节点API设置了swagger文档。swagger.json的服务正确,我在index.html的SwaggerUiBundle的url参数中为其添加了一条路径,如下所示:
const ui = SwaggerUIBundle({
url: "https://my.domain:5292/swagger.json",
dom_id: '#swagger-ui',
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout" })
但是,它在浏览器中打开页面时试图做的第一件事是显示默认的http://petstore.swagger.io/v2/swagger.json而不是我的swagger.json。这样做实际上失败了,因为我通过https服务页面,而petstore不是https,但这是另一回事...
将我的地址手动输入到swagger.json到页面上的表单中,可以正常工作。它会正确显示API页面并对其进行验证。但是,我不想总是在此重新输入地址,并且希望将其作为默认地址。
Swagger UI 3.0.9的bug忽略了url
参数,并始终打开Petstore。
在3.0.10中已修复。
最近使用docker进行部署时,我一直遇到这个问题。尝试了所有操作,从将petstore的所有实例更改为我自己的api json文档,但无济于事。最后,我找到了关于API_URL环境变量的信息,将其设置为DockerFile和voila中的api文档!花了我两天的时间,但很高兴看到它终于工作了。