我有一个标准的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" } } }
但是,在某些请求中,我希望扩展与“ otherDomain”的关联(因此,客户端不必执行N + 1请求即可获取完整数据)。
是否可以配置Spring Data Rest以这种方式处理响应?
默认响应必须保持不变,以确保PUT请求的有效负载GET与返回的请求对称。但是,Spring Data REST引入了一个称为投影的功能,其功能如下:
PUT
GET
你创建一个专用接口,并添加要包括在响应中的所有属性:
public interface MyProjection { String getMyProperty(); MyRelatedObject getOtherDomain(); }
你可以
@Projection
RepositoryRestConfiguration
projectionConfiguration().addProjection(…)
RepositoryRestMvcConfiguration
configureRepositoryRestConfiguration(…)
projection