Node.js生成Swagger UI文档JSON数据源

4
我正在使用Node.js和Swagger构建restful API。Swagger UI(演示链接在这里http://petstore.swagger.io/)需要JSON供稿。
基于Swagger规范yaml文件,您将如何生成此提要?是否有npm模块可以遍历yaml文件并生成JSON源?我对Swagger还很陌生,所以可能会忽略一些东西。
2个回答

4

现在Swagger UI应该支持YAML了。您可以使用JSYAML库将YAML转换为JSON。


你说得完全正确,Mohsen!我刚在本地主机上测试了一下,Swagger UI确实支持直接使用格式良好的Swagger规范文件。它支持yaml和json格式,因此无需进行转换。 - ChrisRich

3

你也可以使用Swagger编辑器:

http://editor.swagger.io/#/

我没有尝试过,但你可以上传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文件放在public目录下,您可以使用以下方式访问它:

http://<yoursite>/swagger.json

请测试一下是否可以从该URL在浏览器中访问Swagger文档。在设置Swagger-UI时将该URL放入上面的“url”参数中,然后您就可以开始了。Swagger-UI会为您完成其余工作,它将从您的站点提取json或yaml定义并生成交互式文档站点。


我了解Swagger UI的工作原理,但如何生成用于Swagger UI的JSON源?我正在寻找一些Node中间件,它可以解析Swagger yaml / json文件并生成UI文档源。 - ChrisRich
啊,我明白了。抱歉我有点困惑。我可以更新答案看看是否有帮助。 - lostintranslation
我过度设计了一些东西。你不需要任何中间件。Swagger UI 可以直接使用 Swagger 规范文件,无论是 yaml 还是 json。 - ChrisRich
我试图做到那个。我卡在了将swagger-ui导入我的应用程序的级别上。var swaggerUi = new SwaggerUi({ url:"http://petstore.swagger.io/v2/swagger.json", dom_id:"swagger-ui-container" }); swaggerUi.load();我收到一个错误,说SwaggerUi未定义!!! 需要帮助吗? - Mostafa Khattab

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接