我正在尝试找出如何使用templated: true建立HAL链接。如果我使用
BasicLinkBuilder.linkToCurrentMapping().slash("api/public/blogs/{blog}").withRel("blog");{和}字符仍然是编码的。你知道如何使用Spring-hateo作为0.10.0.RELEASE的API来构建模板URL链接吗?
谢谢。
发布于 2014-05-22 23:36:04
我也想知道如何使用HATEOAS API来完成这项工作。现在,我们已经解决了这个问题:使用BasicLinkBuilder和ControllerLinkBuilder类生成链接对象,然后将模板化查询参数附加到new Link(String href)构造函数中。有趣的是,这将构建一个具有templated: true属性的链接。
我们注意到,试图将诸如{blog}之类的值传递到LinkBuilder类的尝试以试图从当前请求的值替换这些值而结束(即,链接构建器试图从当前请求中查找?blog=value,并将value替换到正在构建的链接中,但由于该值不存在,因此会导致异常。
尽管解决方法不是特别好,但我的团队还没有找到任何方法来通过API将模板化的参数放入LinkBuilders中,而不会造成问题。
发布于 2015-01-12 16:50:45
为了获得链接中的括号,我最终得到了一个有点老生常谈的解决方案,但作为临时变通方法:
public class BracketsLink extends Link {
public BracketsLink(Link link) {
super(link.getHref().replaceAll("%7B", "{").replaceAll("%7D", "}"), link.getRel());
}
}使用BracketsLink类创建链接和创建链接:
new BracketsLink(linkTo(methodOn(MessageController.class).message("{id}")).withRel("message"))https://stackoverflow.com/questions/23032284
复制相似问题