Lui*_*tos 13 java rest spring spring-data spring-data-rest
我有一个标准的Spring数据JPA和Spring数据Rest设置,它正确地返回关联作为正确资源的链接.
{
"id": 1,
"version": 2,
"date": "2011-11-22",
"description": "XPTO",
"_links": {
"self": {
"href": "http://localhost:8000/api/domain/1"
},
"otherDomain": {
"href": "http://localhost:8000/api/domain/1/otherDomain"
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是在某些请求中,我希望扩展与"otherDomain"的关联(因此客户端不必执行N + 1个请求来获取完整数据).
是否可以配置Spring Data Rest以这种方式处理响应?
Oli*_*ohm 23
默认响应必须保持不变,以确保PUT
请求的有效负载GET
与返回的有效负载对称.但是,Spring Data REST引入了一个名为projection的功能(有关详细信息,请参阅JIRA票证),其工作方式如下:
您可以创建专用接口并添加要包含在响应中的所有属性:
public interface MyProjection {
String getMyProperty();
MyRelatedObject getOtherDomain();
}
Run Code Online (Sandbox Code Playgroud)
你也可以
@Projection
,并将其放在与域类型或其子包相同的包中RepositoryRestConfiguration
并projectionConfiguration().addProjection(…)
手动调用(通过扩展RepositoryRestMvcConfiguration
和覆盖configureRepositoryRestConfiguration(…)
).这将导致为域类型公开的资源接受具有投影名称的projection
参数(名称也可配置ProjectionConfiguration
).如果给出,我们将跳过默认呈现(包括呈现指向相关实体的链接而不是嵌入它们),并让Jackson呈现支持给定接口的代理.
一个例子也可以在Spring RESTBucks项目中找到.请参阅OrderProjection
接口定义.
归档时间: |
|
查看次数: |
8436 次 |
最近记录: |