2017-08-29 1 views
0

J'utilise Spring Data Rest pour exposer une API REST de flux de nouvelles. Je souhaite ajouter une image (emplacement) à l'entité qui sera récupérée par un appel d'API de service Web distinct.Récupération d'informations non DB supplémentaires à l'aide de Spring Data Rest

Quelle est la meilleure façon de faire cela en utilisant Spring Data Rest ou devrais-je créer un autre objet d'appel/domaine REST API séparé, etc.?

Tout exemple de code serait fantastique.

+0

Ne pas oublier d'accepter \ réponses Upvote que vous avez aidé ... – Cepr0

Répondre

0

Vous devez utiliser un ResourceProcessor

Le printemps exportateur de données REST exécute tout a découvert ResourceProcessor avant de créer la représentation de sortie

@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; 
    } 
    }; 
} 

Un autre exemple avec accès au référentiel et EntityLinks objet aide à construire des liens liés à l'entité.

@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; 
    } 
} 

D'autres exemples de l'utilisation ResourceProcessor vous pouvez trouver dans RESTBucks project

+0

Merci, je vais jeter un oeil à ce sujet. Je suppose que comme une liste d'objets sont retournés, cela me permettra d'ajouter une image individuelle à chaque objet? – Swordfish

+0

@Sfishfish oui. il suffit d'essayer ... – Cepr0

+0

Cheers @ Cepr0 – Swordfish