使用Spring Data Rest检索其他非DB信息

时间:2017-08-29 11:59:33

标签: spring-data spring-data-rest

我正在使用Spring Data Rest来公开新闻源REST API。我想向实体添加一个图像(位置),该图像将由单独的Web服务API调用检索。

使用Spring Data Rest执行此操作的最佳方法是什么,或者我是否必须创建另一个单独的REST API调用/域对象等?

任何示例代码都很棒。

1 个答案:

答案 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;
    }
}

您可以在RESTBucks project

中找到使用ResourceProcessor的更多示例