当前位置: 首页 > news >正文

怎样才能做一个手机网站湖南长沙

怎样才能做一个手机网站,湖南长沙,做网站背景的图片,昆明软件开发公司做门户网站的SpringCloudGateway集成SpringDoc 最近在搞Spring版本升级,按客户要求升级Spring版本,原来用着SpringBoot 2.2.X版本,只需要升级SpringBoot 2.X最新版本也就可以满足客户Spring版本安全要求,可是好像最新的SpringBoot 2.X貌似也不…

SpringCloudGateway集成SpringDoc

最近在搞Spring版本升级,按客户要求升级Spring版本,原来用着SpringBoot 2.2.X版本,只需要升级SpringBoot 2.X最新版本也就可以满足客户Spring版本安全要求,可是好像最新的SpringBoot 2.X貌似也不支持Swagger2了,综合考虑,把项目的环境升级到SpringBoot3

版本

  • SpringBoot 3.1.2
  • SpringCloud 2022.0.3 (SpringCloudGateway 4.0.6)
  • SpringDoc-OpenAPI 2.2.0

引入SpringDoc-OpenAPI依赖

<dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webflux-api</artifactId><version>2.2.0</version>
</dependency>
<dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webflux-ui</artifactId><version>2.2.0</version>
</dependency>

自动配置

思路

跟以前Swagger2集成Gateway差不多,读取Gateway的路由配置信息,刷新到SpringDoc-Swagger-UI属性去

实现

@Configuration
@ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
public class DocIntegrationConfig {@Autowiredprivate SwaggerUiConfigProperties swaggerUiConfigProperties;@Autowiredprivate RouteDefinitionLocator locator;@PostConstructpublic void apis() {//获取所有的路径配置List<RouteDefinition> definitions = locator.getRouteDefinitions().collectList().block();//过滤,只要lb模块式List<RouteDefinition> serviceRoutes = definitions.stream().filter(route -> null != route.getUri() && route.getUri().getScheme().equals("lb")).collect(Collectors.toList());//按根据PredicateDefinition参数值和/** 确定是否路径匹配Set<AbstractSwaggerUiConfigProperties.SwaggerUrl> lbRouteUrl = new HashSet<>();Optional.ofNullable(serviceRoutes).orElse(Collections.emptyList()).forEach(route -> {AbstractSwaggerUiConfigProperties.SwaggerUrl swaggerUrl = new AbstractSwaggerUiConfigProperties.SwaggerUrl();//获取路径前缀List<PredicateDefinition> predicates = route.getPredicates();if (null == predicates || predicates.size() <= 0) {return;}String prefix = "";for (PredicateDefinition predicate : predicates) {String predicateName = predicate.getName();if ("path".equalsIgnoreCase(predicateName)) {for (String regex : predicate.getArgs().values()) {if (regex.endsWith("/**")) {prefix = regex.substring(0, regex.length() - 3);continue;}}}}//不是路径匹配的路由,跳过if (StringUtils.isBlank(prefix)) {return;}swaggerUrl.setUrl(prefix + Constants.DEFAULT_API_DOCS_URL);swaggerUrl.setName(prefix);swaggerUrl.setDisplayName(route.getId());lbRouteUrl.add(swaggerUrl);});//添加swaggerUI服务集成匹配if (lbRouteUrl.size() > 0) {Set<AbstractSwaggerUiConfigProperties.SwaggerUrl> propertiesUrls = swaggerUiConfigProperties.getUrls();if (null == propertiesUrls || propertiesUrls.size() <= 0) {propertiesUrls = lbRouteUrl;} else {propertiesUrls.addAll(lbRouteUrl);}swaggerUiConfigProperties.setUrls(propertiesUrls);}}
}

然后就可以根据gateway的路由配置,自动在gateway springdoc界面生成各服务项,选择就可以查看该服务的在线文档。

借助swagger-ui.urls手动配置

springdoc,也提供配置的形式集成,配置swagger-ui.urls,就可以了,name为显示名称,url为服务api-docs,默认 /v3/api-docs。

springdoc:api-docs:#是否开启文档功能,默认为true,可不配置enabled: truewebjars:# 设置为空,不要前缀prefix:swagger-ui:path: /doc.htmlurls:- name: 网关服务接口url: /v3/api-docs- name: 某某服务接口url: /xxxx/v3/api-docs

在集成页面的右上角可看到配置的服务项,选择具体的服务
在这里插入图片描述

集成后CORS问题,请求查看下一篇文章

http://www.yayakq.cn/news/837662/

相关文章:

  • 中国空间站叫什么购买了域名之后怎么做网站
  • 域名备案期间怎么做网站WordPress设置二级域名
  • 网站做优化效果怎么样上海关键词排名搜索
  • wordpress建好站了打不开首页电商平台市场调研报告
  • 开公司注册空头公司做网站视频网站超链接怎么做
  • 网站服务器ip地址查询信息流广告的三个特点
  • 淘宝店可以做团购的网站手机网站建设服务器
  • icp备案查询站长之家大学生文创产品设计方案
  • 郑州快速网站建设手机网站域名设置
  • 如何选择徐州网站开发给网站平台做推广叫什么
  • 北京网站制作公司报价网络游戏开发成本
  • PHP做克隆网站整合营销传播策划方案
  • 爱站seo排名可以做哪些网站沙井营销型网站建设
  • 石家庄电商网站开发多边形网站
  • 天津手机网站建站培训做屏保那个网站下载图好
  • 有网站怎么建设手机站wordpress模拟接口
  • 建设论坛网站视频东莞人才信息网官网
  • 丹东做网站铁道部售票网站多少钱建设
  • 旅游+网站建设制作图片水印
  • 江门网站推广软件自媒体平台注册账号下载
  • 做网站一般都选哪家美橙建站五站合一软件
  • wordpress 音乐站主题wordpress简介怎么改
  • 仿做网站的网站旅游网站开发公司
  • 网站导航的交互怎么做深圳网站建设服务哪个便宜啊
  • 现在做微信开发网站多少钱网站服务器 内容更新吗
  • 怎么把网站做成appwordpress版主
  • 免费云网站一键生成app淮安谁家做网站
  • 自己写小说的网站郓城如何做网站seo
  • 网站引导动画怎么做有域名 有固定ip怎么做网站
  • 投资网站网站源码网站制作收费标准