如何配置 Spring Data REST 以返回具有模板化 ID(例如 users/{id})的链接

问题描述 投票:0回答:1

假设我有一个

User
实体的 Spring 数据存储库。然后,Spring Data REST 在其基本路径中生成以下 HAL JSON:

{
  "_links": {
    "users": {
      "href": "http://localhost:8080/users"
    }
  }
}

我也希望我的客户知道他们可以调用 http://localhost:8080/users/{id} 来获取特定用户(例如,http://localhost:8080/users/25)

如何配置 Spring Data REST 为我的所有实体生成此链接?例如,我希望 Spring Data REST 返回如下内容:

{
  "_links": {
    "users": {
      "href": "http://localhost:8080/users/{id}",
      "templated": true
    }
  }
}

更新

我想要实现的目标的一个很好的例子是https://api.github.com/。 API 明确表明

https://api.github/users/{user}
是 API 的一部分。例如,https://api.github.com/users/odrotbohm是一个有效的调用。

如何让 Spring Data REST 表明

htts://localhost:8080/users/{id}
是我的 API 的一部分?

spring spring-boot spring-data-rest spring-hateoas hal
1个回答
0
投票

只需扩展

PagingAndSortingRepository 
接口即可。它还提供了用于分页和排序数据的附加方法。

@RepositoryRestResource(collectionResourceRel = "users", path = "users")
public interface UserRepository extends PagingAndSortingRepository<User, Long> {
}

请注意

@RepositoryRestResource
注释。它允许更改导出详细信息,例如 JSON 响应中的集合名称或存储库的基本路径。 请看一下这个官方 Spring 指南

© www.soinside.com 2019 - 2024. All rights reserved.