tho*_*sen 7 hateoas spring-data spring-data-rest spring-hateoas
使用spring数据REST我公开了一个ProjectRepository支持列出项目并对它们执行CRUD操作的方法.当我去的时候,http://localhost:8080/projects/我得到了我期望的项目清单.
我要做的是将自定义操作添加到_linksProject Collection的JSON响应部分.
例如,我希望调用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
}
}
Run Code Online (Sandbox Code Playgroud)
凡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;
}
}
Run Code Online (Sandbox Code Playgroud)
并添加以下Bean添加到我的应用程序配置:
@Bean
public ProjectCollectionResourceProcessor projectCollectionResourceProcessor() {
return new ProjectCollectionResourceProcessor();
}
Run Code Online (Sandbox Code Playgroud)
但process(...)似乎永远不会被召唤.添加资源集合的链接的正确方法是什么?
集合资源呈现 的实例Resources<Resource<Project>>,而不是Resource<Collection<Project>>。因此,如果您相应地更改实现中的通用类型,ResourceProcessor那么它应该按您的预期工作。
| 归档时间: |
|
| 查看次数: |
3463 次 |
| 最近记录: |