2015-12-19 2 views
1

Я пытаюсь реализовать селектора полей в моем API для отдыха с использованием Spring. В настоящее время я принял следующий подход.Подход для реализации фильтрации на основе полей весной

У меня есть эта модель.

public class Employee { 

    public String name; 
    public int id; 
    public Department department; 
    public Address address; 
} 

Теперь, если я хочу, чтобы выставить эту модель как отдых у меня будет следующая конечная точка http://test.com/employees.

Для поддержки выбора поля у меня будет http://test.com/employees?fields=id,name.

Для поддержки этого я создал карту, у которой есть модель для ее отображения полей, а затем я использую условия if-else для возвращения только ожидаемых полей.

Поскольку это стандартная конструкция или требование для отдыха api, может быть/должен быть лучший подход.

Может ли кто-нибудь привести меня к некоторому ресурсу, который помогает в этом случае, поскольку я ничего не мог найти.

Спасибо.

+0

Создайте DTO и передайте этот объект как параметр @RequestBody в методе контроллера останова. Дайте мне знать, если вы хотите пример кода – Pulkit

ответ

1

Одним из способов решения этой проблемы является использование Java Reflection API. Вы уже знаете класс, который вы подвергаете. Для каждого поля, которое запрашивает ваш клиент, проверьте, есть ли для него метод getter. Если это так, вызовите его и добавьте значение в объект ответа. Если вы идете по этому маршруту, выполняйте тест и посмотрите, подходит ли он вам.

+0

. Я знаю об этом, так как он попадает на производительность. Я не пошел так. –

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