我正在使用最新的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),但我错过了很好的例子,如何实现类似的效果(分组留档从不同的微服务)。示例仅显示一个外部地址或分组本地终结点。我希望,使用这种方法,我将能够传递头。
属性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。