【发布时间】:2014-06-17 22:10:56
【问题描述】:
使用 spring data REST 我已经公开了一个ProjectRepository,它支持列出项目并对其执行 CRUD 操作。当我转到http://localhost:8080/projects/ 时,我得到了我所期望的项目列表。
我想要做的是向项目集合的 JSON 响应的 _links 部分添加自定义操作。
例如,我希望对 http://localhost:8080/projects/ 的调用返回如下内容:
{
"_links" : {
"self" : {
"href" : "http://localhost:8080/projects/{?page,size,sort}",
"templated" : true
},
"search" : {
"href" : "http://localhost:8080/projects/search"
},
"customAction" : {
"href" : "http://localhost:8080/projects/customAction"
}
},
"page" : {
"size" : 20,
"totalElements" : 0,
"totalPages" : 0,
"number" : 0
}
}
customAction 在某些控制器中定义。
我尝试创建以下类:
public class ProjectCollectionResourceProcessor implements ResourceProcessor<Resource<Collection<Project>>> {
@Override
public Resource<Collection<Project>> process(Resource<Collection<Project>> listResource) {
// code to add the links to customAction here
return listResource;
}
}
并将以下 Bean 添加到我的应用程序配置中:
@Bean
public ProjectCollectionResourceProcessor projectCollectionResourceProcessor() {
return new ProjectCollectionResourceProcessor();
}
但process(...) 似乎从未被调用过。添加资源集合链接的正确方法是什么?
【问题讨论】:
-
另见,这个问题:stackoverflow.com/q/40156413
标签: spring-data hateoas spring-data-rest spring-hateoas