В настоящее время я работаю над Java-приложением REST, используя новый Camel REST DSL в качестве основы. Я пытаюсь отфильтровать результат списка объектов, прежде чем вернуть ответ json для клиента.Apache Camel Filter bean response через REST DSL
Это пример код, что я пытаюсь сделать:
.get("/api/list").description("Search all data")
.to("bean:apiService?method=searchAll")
.route().description("Lets suppose i need to aply a filter in return")
.to("bean:apiService?method=filter").endRest();
Но ИНТ на второе выполнение боба я не могу получить доступ к возвращаемому объекту первого исполнения компонента.
class ApiService {
public MyResponseJSON searchAll(MyJsonObjectRequest request) {
MyResponseJSON jsonReturn = new MyResponseJSON();
return jsonReturn;
}
public MyResponseJSON filter(Exchange exchange) {
//i can't do anything here. The message in exchange is empty
}
}
И возврат отдыха пуст клиенту.
Я пытаюсь не помещать фильтр внутри метода searchAll, потому что я использую принцип единой ответственности.
Если я удаляю .route() .... endRest() ответ в порядке, но не отфильтрован.
Это возможно сделать с помощью REST DSL Apache Camel, и если это возможно, что я делаю неправильно?
Спасибо.
Но в методе searchAll, не должны получать биржу и вернуть Бирже впоследствии так что Exchange отправлен в метод фильтрации? –
Извините за это. Метод получает репрезентативный объект запроса json. –