我正在使用Spring Data Rest来公开新闻源REST API。我想向实体添加一个图像(位置),该图像将由单独的Web服务API调用检索。
使用Spring Data Rest执行此操作的最佳方法是什么,或者我是否必须创建另一个单独的REST API调用/域对象等?
任何示例代码都很棒。
答案 0 :(得分:0)
您应该使用ResourceProcessor
Spring Data REST导出器在创建输出表示
之前执行任何已发现的ResourceProcessor
@Bean
public ResourceProcessor<Resource<MyEntity>> myEntityProcessor() {
return new ResourceProcessor<Resource<MyEntity>>() {
@Override
public Resource<MyEntity> process(Resource<MyEntity> resource) {
resource.add(new Link("http://localhost:8080/images/images.jpg", "image"));
return resource;
}
};
}
访问存储库和EntityLinks对象的另一个示例,该对象有助于构建与实体相关的链接。
@Component
class MyEntityResourceProcessor implements ResourceProcessor<Resource<MyEntity>> {
@Autoware
private MyEntityRepo repo;
@Autoware
private EntityLinks entityLinks;
@Override
public Resource<MyEntity> process(Resource<MyEntity> resource) {
MyEntity entity = resource.getContent();
// Some entity processing...
Link link entityLinks.linkForSingleResource(entity).slash("...").withRel("...")
resource.add(link);
return resource;
}
}
中找到使用ResourceProcessor的更多示例