java - Spring HATEOAS ControllerLinkBuilder 删除尾部斜线?

标签 java spring spring-hateoas

我正在尝试将 Spring HATEOAS 合并到现有的服务工具和 REST API 中。但是,我遇到的问题之一是 ControllerLinkBuilder 似乎删除了尾部斜杠(这是由于现有约束的要求)。是否有一些解决方法或方法可以将该尾部斜杠添加到链接中?

 user.add(linkTo(UserController.class).slash("user").slash(user.getUsername() + "/").withRel("Get User Details"));

(用户扩展 ResourceSupport)

我也试过 .slash("") 无济于事。

输出:

"http://localhost:8080/REST/user/<username>"

最佳答案

据我所知,不仅仅是使用链接生成器。 LinkBuilders 使用 UriComponents 来解析它。然后它遍历每个段并将它们添加回 UriComponents 构建器。 stuff/ 进入 UriComponents,但 stuff 就是全部输出。

你可以做的是以循环方式创建一个链接,例如:

user.add(
    new Link(
         linkTo(UserController.class).slash("user").slash(user.getUsername())
            .toUriComponentsBuilder().build().toUriString() + "/",
         "Get User Details"
    )
);

可能有更简单的方法……但您明白了。 Link 似乎没有向您介绍 UriComponents 的内容

关于java - Spring HATEOAS ControllerLinkBuilder 删除尾部斜线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24640231/

相关文章:

java - 傅里叶变换和傅里叶描述符在Java上提取形状特征

java - Spring Batch 集成——远程分块从属异常

java - 为 spring hatoas 执行单元测试用例时缺少 jsonRootName

java - JMH:无效的初始堆大小

java - 创建实体时执行 DDL 时出错

java - 设置selenium webdriver的默认执行速度

java - 带有 Spring Boot : static resource (i. e 的 Spring Security 4。 css, js, img) 404问题

java - hibernate 错误 "net.sf.ehcache.CacheException"

java - HystrixCommand 注释导致 ControllerLinkBuilder 中断

spring-mvc - 在 Spring Hateoas 中将链接分解为实体