2015-01-25 1 views
7

Я создал проекцию источника данных Spring (а не выдержку выдержки) и вам нужно добавить некоторые ссылки на нее только в том случае, если эти ссылки не имеют значения с другими проекциями одного и того же объекта и самим объектом.Как добавить ссылки к проекциям REST Spring Data?

Как мы можем это сделать, насколько я знаю, используя ResourceProcessor Я могу добавлять ссылки только на сущности, можно ли добавлять ссылки только для этой проекции?

ответ

13

Кажется, возможно создать ResourceProcessor, предназначенный для проекции, и я мог бы создать 3 ResourceProcessors один для каждой проекции и один для самой сущности, и они вызываются в зависимости от того, какая проекция упоминается в 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 никогда не используется внутри метода процесса. Это вопрос демонстрации метода resource.getContent()? – GedankenNebel

+0

Мистер Оливер, можете ли вы помочь нам с вышеуказанным вопросом? Tks! –

+1

@GedankenNebel Я думаю, что вы правы. 'UserProjection' используется для демонстрационных целей, так как u не может добавить ссылку на интерфейс проекции. Вы можете добавлять слова 'Links' в' resources' –

Смежные вопросы