Quarkus 3.16升级3.17后HalLink构造器参数变更适配问题
Quarkus 3.16升级3.17后HalLink构造器兼容方案
要保持原有功能,直接给新增的title和type参数传入null即可。原1参数构造器仅初始化href字段,title和type原本就无默认值,显式传null完全匹配旧版行为。
修改后的代码如下:
public static Map<String, HalLink> paginationHalLinks(int current, int size, long count, UriInfo uriInfo, Map<String, Object> queryParams) { int firstPage = 0; int lastPage = (int) ((count + size - 1) / size) - 1; int currentPage = Math.min(current, lastPage); int next = (currentPage == lastPage) ? lastPage : (current + 1); int previous = (current == firstPage) ? firstPage : (current >= lastPage) ? ((lastPage == firstPage) ? firstPage : lastPage - 1) : (current - 1); int[] navigationPages = {firstPage, lastPage, next, previous, currentPage}; String[] navigationRel = {"first", "last", "next", "prev", "self"}; Map<String, HalLink> links = new HashMap<>(); for (int i = 0; i < 5; i++) { final int navigationPage = navigationPages[i]; UriBuilder firstLinkBuilder = uriInfo.getAbsolutePathBuilder(); firstLinkBuilder.queryParam("page", navigationPage); firstLinkBuilder.queryParam("size", size); queryParams.forEach(firstLinkBuilder::queryParam); // 传入null作为新增的title和type参数 links.put(navigationRel[i], new HalLink(firstLinkBuilder.build().toString(), null, null)); } return links; }
如果后续需要给特定链接添加title或type属性,再针对对应位置传入具体字符串即可,目前传null完全兼容旧版的分页链接生成逻辑。
内容的提问来源于stack exchange,提问作者Nik
相关产品推荐
相关产品推荐

