当前位置: 首页 > 知识库问答 >
问题:

如何使用Spring Hateoas和HAL为链接添加附加属性?

松涵容
2023-03-14

我正在使用配置了@EnableHypermediaSupport(类型=HAL)的Spring Boot和Spring Hateoas。虽然这在基本场景中效果很好,但我希望能够向链接添加其他属性。例如,很容易返回将呈现以下链接的链接:

{
   "_links":{
      "self":{
         "href":"http://localhost/"
      },
      "something":[
         {
            "href":"http://some-url.com/something1"
         },
         {
            "href":"http://some-url.com/something2"
         }
      ]
   }

我想做的是向something rel中的对象添加更多属性。例如:

{
   "_links":{
      "self":{
         "href":"http://localhost/"
      },
      "something":[
         {
            "name":"something1",
            "href":"http://some-url.com/something1"
         },
         {
            "name":"something2",
            "href":"http://some-url.com/something2"
         }
      ]
   }
}

在不创建自己的DTO的情况下,最好的方法是什么(最好使用ControlllerLinkBuilder)?我尝试过创建自己的Link子类并为名称添加字段(以及getter和setter),但它们似乎被忽略了。

共有1个答案

濮佑运
2023-03-14

HAL支持将得到重大升级,所以我会等待。

我不知道如何使用子类,但基本上这种方法是有效的。您不能忘记名称字段上的注释。例子:

public SuperLink extends Link {
  @XmlAttribute
  private String name;

  public SuperLink(Link link, String name) {
    super(link.getHref(), link.getRel());
    this.name = name;
  }
 类似资料:
  • 我只是想学习,构建一个Spring HATEOAS应用程序。 我已将自定义查询添加到我的存储库中: 我得到了很好的JSON响应,但由于这是可分页的,我想要一个链接部分。。。使用上一个/下一个。 我该如何添加它? 主url提供了所有客户的列表,链接没有问题,我只想将这些链接添加到自定义可分页方法。 --编辑-- 啊! 使findAllFitered方法返回一个页面而不是列表。。。

  • 问题内容: 如何使用JavaScript 将属性动态添加到链接? 我基本上想动态添加一个属性(即,当用户单击网站上的特定图像时)。 来自: 我需要去: 问题答案:

  • 问题内容: 我想在使用创建的PDF中添加超链接,这样我单击一些文本示例,“单击此处”将重定向到URL。我尝试使用和,但是如何添加呢? 问题答案: 要添加使用以下代码

  • 有一个用户集合

  • 我正在使用改装库,我想从OpenWeatherPi获取天气预报。 我有这个。

  • 点击下图信息窗中的字段值“中国工商银行”,将打开中国工商银行的网站 亿景智图中,不需要编程就可以实现这样的效果,将字段值按以下形式组织即可:<a href=网址>网站标识</a>,例如 <a href='http://www.icbc.com.cn/icbc/'>中国工商银行</a>,需要注意的是,url 上的引号必须是英文字符,单引号或是双引号均可。 如果需要在新窗口中打开链接,在url后面空格