【问题标题】:Retrieving additional non DB information using Spring Data Rest使用 Spring Data Rest 检索其他非 DB 信息
【发布时间】:2017-08-29 11:59:33
【问题描述】:

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

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

任何示例代码都会很棒。

【问题讨论】:

  • 别忘了接受\upvote那些对你有帮助的答案...

标签: spring-data spring-data-rest


【解决方案1】:

你应该使用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 的例子你可以在RESTBucks project找到

【讨论】:

  • 谢谢,我会看看这个。我假设正在返回一个对象列表,这将允许我为每个对象添加一个单独的图像?
  • 干杯@Cepr0 ?
猜你喜欢
  • 2020-07-31
  • 1970-01-01
  • 2018-03-18
  • 2013-09-16
  • 2018-04-29
  • 2015-10-30
  • 1970-01-01
  • 2019-09-15
  • 1970-01-01
相关资源
最近更新 更多