swagger knife4j 修改下拉框分组排序

在使用knife4j的过程中 项目为spring cloud alibaba微服务架构 但在开发过程中 有些服务非必须启动的服务 但是进入knife4j管理页面过程中 由于下拉框第0个位置的服务为非必须启动 造成无法从页面选择其他服务
在这里插入图片描述
在这里插入图片描述

  1. 由于是微服务项目 swagger是集成在gateway上的
    在这里插入图片描述
    发现这个方法在启动过程中通过getRouteDefinitions()获取到了router的信息并add到swaggeruconfig中
  2. 查看SwaggerUiConfigParameters类
    在这里插入图片描述
    封装下拉框返回信息代码
/**
	 * Put.
	 *
	 * @param urls the urls
	 * @param swaggerUrls the swagger urls
	 * @param params the params
	 */
	private void put(String urls, Set<SwaggerUrl> swaggerUrls, Map<String, Object> params) {
		Comparator<SwaggerUrl> swaggerUrlComparator;
		if (groupsOrder.isAscending())
			swaggerUrlComparator = Comparator.comparing(SwaggerUrl::getName);
		else
			swaggerUrlComparator = (h1, h2) -> h2.getName().compareTo(h1.getName());

		swaggerUrls = swaggerUrls.stream().sorted(swaggerUrlComparator).filter(elt -> StringUtils.isNotEmpty(elt.getUrl())).collect(Collectors.toCollection(LinkedHashSet::new));
		if (!CollectionUtils.isEmpty(swaggerUrls)) {
			params.put(urls, swaggerUrls);
		}
	}

urls封装方法 sorted

3.结论

下拉框排序是根据router信息进行排序 字母为字母排序 加上数字会对数字进行排序 但是swagger是获取predicates作为名称 改掉yml predicates配置后前端路径还得修改

大家有什么好的方法欢迎交流 只是个人研究 从业务开发角度来说这种情况可处理可不处理

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值