如何在 Spring Hateoas 中更改嵌入集合的 属性 名称

How to change the property name of an embbed collection in Spring Hateos

我正在使用 Spring hateoas 生成 HAL 接口。 我的代码如下所示:

@RequestMapping(method = RequestMethod.GET)
public Resources<Resource<Type>> all() {
    List<Resource<Type>> sdf = typeRepository.all().stream().map(type -> {
        return new Resource<Type>(type, ControllerLinkBuilder.linkTo(this.getClass()).slash(type.getId()).withSelfRel());
    }).collect(Collectors.toList());

    Resources<Resource<Type>> resourcesType = new Resources<>(sdf);
    resourcesType.add(ControllerLinkBuilder.linkTo(ControllerLinkBuilder.methodOn(this.getClass()).all()).withSelfRel());
    return resourcesType;
}

生成的 json 如下所示:

{
  "_links": {
    "self": {
      "href": "http://localhost:8080/type"
    }
  },
  "_embedded": {
    "typeEntityList": [
      {
        "id": "4f7fa2da-20e2-4b42-9b45-2d1749825785",
        "version": 0,
        "name": "name1",
        "_links": {
          "self": {
            "href": "http://localhost:8080/type/4f7fa2da-20e2-4b42-9b45-2d1749825785"
          }
        }
      }
    ]
  }
}

我想更改 "typeEntityList" 的名称,但我找不到它的来源或来源。 有人知道怎么做吗?

看看这里: http://docs.spring.io/spring-hateoas/docs/0.19.0.RELEASE/reference/html/#spis.rel-provider

您看到的是默认设置。如果将 EVO 变形器放在类路径中,您将得到类似 "types" 的内容。您还可以将 @Relation 注释放在您的实体上,并更改集合和单个资源的 rel 名称。

@RepositoryRestResource(path = "somePath",collectionResourceRel="proper_list_of_items_name")

String collectionResourceRel() default "";

The rel value to use when generating links to the collection resource.