微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用带有现有 swagger.json 的 swagger-ui-dist 从基于 hapi 的服务器提供 swagger ui?

如何解决如何使用带有现有 swagger.json 的 swagger-ui-dist 从基于 hapi 的服务器提供 swagger ui?

我的项目的要点:

  • TypeScript 服务器端 Web 服务器项目(非 SPA)
  • 从同一服务器提供 ui 和我的 api
  • 所有 API 路由都通过路径 /api/v2
  • 使用 hapi 作为服务器
  • 使用tsoa生成两个我的hapi路线我的swagger.json
  • 我在运行时的 swagger 规范内容可在 /swagger

注意:请不要将我指向 hapi-swagger,因为我目前更喜欢 tsoa 的路由生成,这与 hapi-swagger 不兼容。 >

我想在 /api-docs 的服务器上提供 swagger ui,以便它描述我的 swagger.json

docs 表示我应该使用 swagger-ui-dist 通过利用其 getAbsoluteFSPath() 方法来静态提供其内容。我很高兴这样做,但我就是不知道如何配置 swagger-ui-dist 以使用 my swagger 规范,可在 /swagger 获得。 index.html 处的 node_modules/swagger-ui-dist 包括以下内容

  <body>
    <div id="swagger-ui"></div>

    <script src="./swagger-ui-bundle.js" charset="UTF-8"> </script>
    <script src="./swagger-ui-standalone-preset.js" charset="UTF-8"> </script>
    <script>
    window.onload = function() {
      // Begin Swagger UI call region
      const ui = SwaggerUIBundle({
        url: "https://petstore.swagger.io/v2/swagger.json",dom_id: '#swagger-ui',deepLinking: true,presets: [
          SwaggerUIBundle.presets.apis,SwaggerUIStandalonePreset
        ],plugins: [
          SwaggerUIBundle.plugins.DownloadUrl
        ],layout: "StandaloneLayout"
      })
      // End Swagger UI call region

      window.ui = ui
    }
  </script>

前面提到的 docs 说要静态地提供目录 node_modules/swagger-ui-dist,但他们没有说明如何配置 SwaggerUIBundleurl指向从提供该内容的同一服务器提供的 /swagger。我觉得复制内容不是你应该做的。

我如何从我的服务器提供 swagger ui 以便它显示 my swagger 的文档并允许该 ui 的用户通过 swagger ui 的 Try it out 功能调用端点?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。