Spring Data Rest - 自定义端点名称
Spring Data Rest - customize endpoint name
默认情况下,Spring 数据 REST 使用驼峰命名法作为端点名称。
例如,如果存储库是
@RepositoryRestResource(collectionResourceRel = "users", path = "users")
public interface UserRepository extends PagingAndSortingRepository<User, Integer> {
List<User> findByUsername(@Param("username") String username);
}
那么终点就是http://localhost:8080/users/search/findByUsername?username=test
如何自定义端点以便它使用 snake_case,变成这样:http://localhost:8080/users/search/find_by_username?username=test
甚至不同的方法名称
- 更改
find_by_username
:http://localhost:8080/users/search/by_username?username=test
- (剥离
find_by_username
):http://localhost:8080/users/search?username=test
谢谢
@RestResource
注释还使我们能够自定义映射到存储库方法的 URL 路径和 HATEOAS 返回的 JSON 中的 link id资源发现。
为此,我们使用注释的可选参数:
- 路径为URL路径
- rel 对于 link id
通过向 http://localhost:8080/users/search/
执行 cUrl,我们现在可以看到我们的新方法与其他资源一起列出:
{
"_links": {
"findByUsername": {
"href": "http://localhost:8080/users/search/findByUsername{?username}"
},
"self": {
"href": "http://localhost:8080/users/search/"
}
}
}
所以要自定义其余 url 端点,我们可以简单地添加 @RestResource
注释:
@RestResource(path = "byUsername", rel = "customFindMethod")
List<User> findByUsername(@Param("username") String username);
如果我们再次进行资源发现,结果 JSON 将确认我们的更改:
{
"_links": {
"customFindMethod": {
"href": "http://localhost:8080/users/search/byUsername{?username}",
"templated": true
},
"self": {
"href": "http://localhost:8080/users/search/"
}
}
}
更多详情请查看her
默认情况下,Spring 数据 REST 使用驼峰命名法作为端点名称。
例如,如果存储库是
@RepositoryRestResource(collectionResourceRel = "users", path = "users")
public interface UserRepository extends PagingAndSortingRepository<User, Integer> {
List<User> findByUsername(@Param("username") String username);
}
那么终点就是http://localhost:8080/users/search/findByUsername?username=test
如何自定义端点以便它使用 snake_case,变成这样:http://localhost:8080/users/search/find_by_username?username=test
甚至不同的方法名称
- 更改
find_by_username
:http://localhost:8080/users/search/by_username?username=test
- (剥离
find_by_username
):http://localhost:8080/users/search?username=test
谢谢
@RestResource
注释还使我们能够自定义映射到存储库方法的 URL 路径和 HATEOAS 返回的 JSON 中的 link id资源发现。
为此,我们使用注释的可选参数:
- 路径为URL路径
- rel 对于 link id
通过向 http://localhost:8080/users/search/
执行 cUrl,我们现在可以看到我们的新方法与其他资源一起列出:
{
"_links": {
"findByUsername": {
"href": "http://localhost:8080/users/search/findByUsername{?username}"
},
"self": {
"href": "http://localhost:8080/users/search/"
}
}
}
所以要自定义其余 url 端点,我们可以简单地添加 @RestResource
注释:
@RestResource(path = "byUsername", rel = "customFindMethod")
List<User> findByUsername(@Param("username") String username);
如果我们再次进行资源发现,结果 JSON 将确认我们的更改:
{
"_links": {
"customFindMethod": {
"href": "http://localhost:8080/users/search/byUsername{?username}",
"templated": true
},
"self": {
"href": "http://localhost:8080/users/search/"
}
}
}
更多详情请查看her