2015-01-25 17 views
7

Ho creato una proiezione Spring Data Rest (non una proiezione dell'estratto) e ho bisogno di aggiungere alcuni collegamenti ad essa solo perché questi collegamenti non hanno importanza con altre proiezioni della stessa entità né con l'entità stessa.Come aggiungere collegamenti alle proiezioni REST di Spring Data?

Come possiamo farlo per quanto ne so utilizzando ResourceProcessor Posso aggiungere collegamenti solo a entità, è possibile aggiungere collegamenti solo per quella proiezione?

risposta

13

Sembra che è possibile solo per creare un ResourceProcessor dedicato ad una proiezione e ho potuto creare 3 ResourceProcessors uno per ciascuna sporgenza e uno per entità sé e vieni chiamato a seconda della proiezione è menzionato in URL.

@Component 
public class UserProjectionResourceProcessor 
    implements ResourceProcessor<Resource<UserProjection>> { 

    public static final String CANCEL_REL = "cancel"; 

    @Autowired 
    private EntityLinks entityLinks; 

    @Override 
    public Resource<UserProjection> process(Resource<UserProjection> resource) { 

     UserProjection userProjection = resource.getContent(); 
     resource.add(entityLinks.linkFor(User.class).withRel(CANCEL_REL));    
     return resource; 
    } 
} 
+4

userProjection non viene mai utilizzato all'interno del metodo di processo. Si tratta di dimostrare il metodo resource.getContent()? – GedankenNebel

+0

Signor Oliver, puoi aiutarci con la domanda precedente? Tks! –

+1

@GedankenNebel Penso che tu abbia ragione. 'UserProjection' viene utilizzato a scopo dimostrativo perché non è possibile aggiungere un' Link' a un'interfaccia di proiezione. Puoi solo aggiungere 'Links' a' resources' –

Problemi correlati