我目前正在使用新的Camel REST DSL作为基础,开发基于REST的Java应用程序。我试图在返回客户端的json响应之前过滤对象列表的结果。
这是我正在尝试做的示例代码:
.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();
但是在第二个bean执行中,我无法访问第一个bean执行返回的对象。
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(),则响应正常,但不会过滤。
这可以使用Apache Camel的REST DSL,如果可能的话,我做错了什么?
感谢。
答案 0 :(得分:2)
在rest-dsl中只有to
或route
,而不是两者,例如:
.get("/api/list").description("Search all data")
.route()
.to("bean:apiService?method=searchAll")
.to("bean:apiService?method=filter");