首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Spring-hateoas构建带有"templated:true“的HAL链接?

如何使用Spring-hateoas构建带有"templated:true“的HAL链接?
EN

Stack Overflow用户
提问于 2014-04-12 23:23:11
回答 2查看 3.6K关注 0票数 6

我正在尝试找出如何使用templated: true建立HAL链接。如果我使用

代码语言:javascript
复制
BasicLinkBuilder.linkToCurrentMapping().slash("api/public/blogs/{blog}").withRel("blog");

{}字符仍然是编码的。你知道如何使用Spring-hateo作为0.10.0.RELEASE的API来构建模板URL链接吗?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2014-05-22 23:36:04

我也想知道如何使用HATEOAS API来完成这项工作。现在,我们已经解决了这个问题:使用BasicLinkBuilder和ControllerLinkBuilder类生成链接对象,然后将模板化查询参数附加到new Link(String href)构造函数中。有趣的是,这将构建一个具有templated: true属性的链接。

我们注意到,试图将诸如{blog}之类的值传递到LinkBuilder类的尝试以试图从当前请求的值替换这些值而结束(即,链接构建器试图从当前请求中查找?blog=value,并将value替换到正在构建的链接中,但由于该值不存在,因此会导致异常。

尽管解决方法不是特别好,但我的团队还没有找到任何方法来通过API将模板化的参数放入LinkBuilders中,而不会造成问题。

票数 3
EN

Stack Overflow用户

发布于 2015-01-12 16:50:45

为了获得链接中的括号,我最终得到了一个有点老生常谈的解决方案,但作为临时变通方法:

  • 创建类:

代码语言:javascript
复制
public class BracketsLink extends Link {
    public BracketsLink(Link link) {
        super(link.getHref().replaceAll("%7B", "{").replaceAll("%7D", "}"), link.getRel());
    }
}

使用BracketsLink类创建链接和创建链接:

代码语言:javascript
复制
new BracketsLink(linkTo(methodOn(MessageController.class).message("{id}")).withRel("message"))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23032284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档