【发布时间】:2015-10-17 01:08:00
【问题描述】:
我正在使用 Node.js 和 Swagger 构建一个宁静的 API。 Swagger UI(此处为演示链接 http://petstore.swagger.io/)需要 JSON 提要。
您将如何根据 Swagger 规范 yaml 文件生成此提要?是否没有可以遍历 yaml 文件并生成 JSON 提要的 npm 模块?我是 Swagger 的新手,所以我可能忽略了一些东西。
【问题讨论】:
我正在使用 Node.js 和 Swagger 构建一个宁静的 API。 Swagger UI(此处为演示链接 http://petstore.swagger.io/)需要 JSON 提要。
您将如何根据 Swagger 规范 yaml 文件生成此提要?是否没有可以遍历 yaml 文件并生成 JSON 提要的 npm 模块?我是 Swagger 的新手,所以我可能忽略了一些东西。
【问题讨论】:
Swagger UI 现在应该支持 YAML。您可以使用 JSYAML 库将 YAML 转换为 JSON。
【讨论】:
您也可以使用 Swagger 编辑器:
我不能说我以前尝试过,但你可以上传 YAML 并导出为 YAML 或 JSON。
我以前用过这个编辑器,真的很喜欢。
编辑:
所以为了设置 swagger ui,我做了以下操作:
var swaggerUi = new SwaggerUi({
url:"http://petstore.swagger.io/v2/swagger.json",
dom_id:"swagger-ui-container"
});
swaggerUi.load();
来自这里:
https://github.com/swagger-api/swagger-ui
我认为你得到了那个部分。
至于文档(YAML 或 JSON),只需从您的网站提供即可。如果您在 nodejs 服务器上使用 express,只需静态提供文件:
http://expressjs.com/starter/static-files.html
app.use('/static', express.static('public'));
所以在这种情况下,如果您将 swagger.json 文件放在您的公共目录下,您可以通过以下方式访问它:
http://<yoursite>/swagger.json
只需测试您是否可以从浏览器中的该 url 访问您的 swagger 文档。设置 swagger-ui 时,将该 URL 放入上面的 'url' 参数中,然后就可以了。 Swagger-ui 将为您完成剩下的工作,它将从您的站点中提取 json 或 yaml 定义并生成交互式文档站点。
【讨论】: