2015-01-25 12 views
7

Utworzyłem projekcję spoczynkową Spring Data (a nie rzut fragmentów) i muszę dodać kilka linków do niej, ponieważ te linki nie mają znaczenia z innymi projekcjami tego samego obiektu ani z samym bytem.Jak dodać linki do projekcji REST danych Spring?

Jak możemy to zrobić, o ile wiem, używając ResourceProcessor Mogę dodawać linki do tylko encji, czy można dodać linki tylko do tej projekcji?

Odpowiedz

13

Wydaje się, że jest to możliwe tylko stworzyć ResourceProcessor dedykowana do projekcji i mogę tworzyć 3 ResourceProcessors jednym dla każdego występu i jeden dla samego podmiotu i sprawdzony w zależności od projekcji jest wymieniony w adresie 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 nie jest nigdy używany w metodzie procesu. Czy jest to kwestia demonstracji metody resource.getContent()? – GedankenNebel

+0

Panie Oliver, czy możesz pomóc nam w powyższym pytaniu? Tks! –

+1

@GedankenNebel Myślę, że masz rację. 'UserProjection' jest używany do celów demonstracyjnych, ponieważ nie można dodać' Link' do interfejsu projekcyjnego. Możesz dodać 'Links' do' resources' –