假设我有一个
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 的一部分?
只需扩展
PagingAndSortingRepository
接口即可。它还提供了用于分页和排序数据的附加方法。
@RepositoryRestResource(collectionResourceRel = "users", path = "users")
public interface UserRepository extends PagingAndSortingRepository<User, Long> {
}
请注意
@RepositoryRestResource
注释。它允许更改导出详细信息,例如 JSON 响应中的集合名称或存储库的基本路径。
请看一下这个官方 Spring 指南