当前位置: 首页 > 知识库问答 >
问题:

代理后的Springdoc(Swagger)分组配置

辛弘壮
2023-03-14

我正在使用最新的springdoc库在一个地方创建一个具有所有Swagger配置的公共终结点。库伯内特斯部署了一堆微服务,所以在一个地方留档会很方便。最简单的方法是使用这样的(https://springdoc.org/faq.html#how-can-i-define-groups-using-applicationyml):

springdoc:
  api-docs:
    enabled: true
  swagger-ui:
    disable-swagger-default-url: true
    urls:
      - name: one-service
        url: 'http://one.server/v3/api-docs'
      - name: second-service
        url: 'http://second.server/v3/api-docs'

而且效果很好,我可以从右上角的列表中选择。问题是它不能通过代理工作。根据文档,我需要设置一些标题(https://springdoc.org/faq.html#how-can-i-deploy-springdoc-openapi-ui-behind-a-reverse-proxy),它适用于直接调用的单个服务。但当我尝试进行上述分组时,头不会传递给一个服务或第二个服务,它们会生成指向localhost的文档。

我怀疑我需要使用分组(https://springdoc.org/faq.html#how-can-i-define-multiple-openapi-definitions-in-one-spring-boot-project),但我错过了很好的例子,如何实现类似的效果(分组留档从不同的微服务)。示例仅显示一个外部地址或分组本地终结点。我希望,使用这种方法,我将能够传递头。

共有1个答案

弓俊晖
2023-03-14

属性springdoc。大摇大摆的用户界面。网址* ,适用于配置外部(/v3/api docs url),例如,如果您希望在单个应用程序内重新生成其他服务的所有endpoint。

它不会继承代理配置,但会使用在:servers中定义的服务器URLhttp://one.server/v3/api-docs和http://second.server/v3/api-docs.

如果您希望在服务前面有一个代理,则由您的服务来处理要公开的正确服务器URL。

如果你想让它开箱即用,你可以使用一个解决方案来处理代理和路由,比如SpringCloudGateway

 类似资料:
  • 我在spring boot 2.3.1应用程序中添加了swagger ui,它在本地运行良好。 此应用程序部署在kubernetes集群中,但无法访问(没有入口) 相反,我们部署了另一个可以访问并可以调用此服务的spring boot应用程序。API调用可以很好地重定向,但swagger ui不起作用。 基本上,我的代理应用程序可以这样访问:https://app-dev.domain.io/pr

  • 我们在代理后运行服务,以便: 被路由到公共地址 或者从另一个角度定义: 当nginx在上接收到请求时,它会去掉前缀,并将请求传递给路径上的service。 在设置任何东西之前(使用默认的SpringDoc配置),我可以正确地看到超文本传输协议上的昂首阔步的文档://service-post: 8080/swagger-ui.html。 设置主机上公共地址的路径。com,我正在使用: 然而,这似乎完

  • 我有一个SpringBoot应用程序,它可以与Springdoc完美配合,直到我添加以下代码将endpoint分组到默认组中。 一旦添加了这部分代码,我就会得到下面的错误 你知道怎么了吗? v1.4.3下载 Spring靴2。十、

  • 我使用此库生成文档: 我有这个控制器: 但是我留档: 为什么< code>required = false不起作用? 我试过这个: 这也不管用 编辑:(回答@Helen comment)-我当然知道这一点: 我试过了这个: 它使文档变得更糟。所以我没有加这个代码。对于< code>{"/test ","/test{hz}"},它看起来像这样:

  • 当使用与SpringDoc-OpenAPI捆绑的CSRF头时,是否有一种方法可以自动地将CSRF头包含到从swagger ui发出的请求中? springfox(GitHub)中似乎实现了类似的解决方案,但我没有找到关于是否可以用SpringDoc-OpenAPI实现这一点的信息。

  • 带有springdoc openapi ui(Swagger ui)的SpringBoot2.2应用程序运行HTTP端口。应用程序部署到Kubernetes,入口将HTTPS请求从集群外部路由到服务。 在这种情况下,可在有错误的“生成的服务器url”-。而它应该是。 虽然Swagger UI是通过HTTPS访问的,但生成的服务器URL仍然使用HTTP。