首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代理后的Springdoc (Swagger)分组配置

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

Stack Overflow用户
提问于 2020-09-23 15:02:13
回答 1查看 443关注 0票数 1

我正在使用最新的springdoc库在一个地方创建一个包含所有Swagger配置的公共端点。Kubernetes中部署了大量微服务,因此将文档放在一个位置会很方便。要做到这一点,最简单的方法是使用类似这样的东西(https://springdoc.org/faq.html#how-can-i-define-groups-using-applicationyml):

代码语言:javascript
复制
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),但是我错过了一个很好的例子,即如何实现类似的效果(对来自不同微服务的文档进行分组)。示例仅显示一个外部地址或对本地端点进行分组。我希望,使用这种方法,我将能够传递头部。

EN

回答 1

Stack Overflow用户

发布于 2021-05-23 23:08:40

属性springdoc.swagger-ui.urls.*适用于配置外部(/v3/api-docs url),例如,如果您想要在单个应用程序内同意其他服务的所有端点。

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

您希望在您的服务前面有一个代理,这取决于您的服务来处理您想要公开的正确服务器urls。

如果你想让它开箱即用,你可以使用一个像spring-cloud-gateway一样处理代理和路由的解决方案

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64022679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档