【问题标题】:Node.js Swagger generate UI doc JSON feedNode.js Swagger 生成 UI 文档 JSON 提要
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

    • 你是绝对正确的莫森!我现在已经在 localhost 上对此进行了测试,并且 Swagger UI 确实支持直接开箱即用的格式良好的 Swagger 规范文件。 yaml 和 json 都支持,所以不需要转换。
    【解决方案2】:

    您也可以使用 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 文件放在您的公共目录下,您可以通过以下方式访问它:

    http://<yoursite>/swagger.json
    

    只需测试您是否可以从浏览器中的该 url 访问您的 swagger 文档。设置 swagger-ui 时,将该 URL 放入上面的 'url' 参数中,然后就可以了。 Swagger-ui 将为您完成剩下的工作,它将从您的站点中提取 json 或 yaml 定义并生成交互式文档站点。

    【讨论】:

    • 我了解 Swagger UI 的工作原理,但是如何生成进入 Swagger UI 的 JSON 提要?我正在寻找一些解析 Swagger yaml / json 文件并生成 UI 文档提要的 Node 中间件
    • 啊,我明白了。对不起,我很困惑。我可以更新答案,看看是否有帮助。
    • 我已经完成了工程设计。您不需要任何中间件。 Swagger UI 可以直接使用 yaml 或 json 格式的 Swagger 规范文件。
    • 我试图这样做。我坚持在我的应用程序中导入 swagger-ui 的级别 var swaggerUi = new SwaggerUi({ url:"petstore.swagger.io/v2/swagger.json", dom_id:"swagger-ui-container" }); swaggerUi.load();我收到一条错误消息,说 SwaggerUi 未定义!!!有什么帮助吗?
    猜你喜欢
    • 1970-01-01
    • 2014-02-15
    • 2016-03-24
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多