Spring HATEOAS ControllerLinkBuilder删除尾部斜杠?

时间:2014-07-08 19:30:30

标签: 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>"

1 个答案:

答案 0 :(得分:1)

就我所见,不只是使用链接构建器。 LinkBuilders使用UriComponents来解析它。然后它遍历每个段并将它们添加回UriComponents构建器。 stuff / 进入UriComponents,但东西就是这样。

你能做的就是把它作为一个回合的方式,例如:

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

可能有一种更简单的方式......但你明白了。链接似乎没有推动你通过UriComponents的东西