Apache Camel REST DSL 发送一些数据以及每个响应
Apache Camel REST DSL sending some data along with each response
我是 Camel 新手,想实现以下场景:
我正在使用 camel 开发 REST 服务 REST-DSL 并且每次响应时,我都必须发送一些数据(一个表示新通知数量的整数)。
以下是我如何使用 REST DSL 的代码:
rest("/rest1").description("Rest1 service")
.consumes("application/json").produces("application/json")
.post("/addMultiple").typeList(Map.class).to("bean:somebean1?method=someMethod1(${body})")
.post("/add").to("bean:somebean1?method=someMethod2(${body})")
.get("/status").description("Find all request by status").outTypeList(Request.class)
.to("bean:somebean1?method=someMethod3(${header.status})") ;
rest("/rest2").description("Rest2 service")
.consumes("application/json").produces("application/json")
.post("/add").type(FileBean.class).to("bean:someBean2?method=someMethod1(${body})")
.get("/categories")
.description("get all categories")
.to("bean:someBean2?method=someMethod2()");
在这里,对于我发送的每个 JSON 响应,我必须发送一些整数计数以便在客户端持续更新。
如果我可以 header 并且每次响应我都通过设置新值来更新它会怎么样。
请告知如何实现这一点。
您可以在您的 bean 中添加 header,并使用 bean 参数绑定来绑定 Map headers
,以便您可以添加计数器。
public String doSomething(String data, @Headers Map headers) {
...
}
查看更多详情
- http://camel.apache.org/parameter-binding-annotations.html
- http://camel.apache.org/bean-binding.html
另一种方法是使用 on-completion 在路由末尾添加 header(需要 Camel 2.15 并使用 before consumer 模式)
我是 Camel 新手,想实现以下场景:
我正在使用 camel 开发 REST 服务 REST-DSL 并且每次响应时,我都必须发送一些数据(一个表示新通知数量的整数)。
以下是我如何使用 REST DSL 的代码:
rest("/rest1").description("Rest1 service")
.consumes("application/json").produces("application/json")
.post("/addMultiple").typeList(Map.class).to("bean:somebean1?method=someMethod1(${body})")
.post("/add").to("bean:somebean1?method=someMethod2(${body})")
.get("/status").description("Find all request by status").outTypeList(Request.class)
.to("bean:somebean1?method=someMethod3(${header.status})") ;
rest("/rest2").description("Rest2 service")
.consumes("application/json").produces("application/json")
.post("/add").type(FileBean.class).to("bean:someBean2?method=someMethod1(${body})")
.get("/categories")
.description("get all categories")
.to("bean:someBean2?method=someMethod2()");
在这里,对于我发送的每个 JSON 响应,我必须发送一些整数计数以便在客户端持续更新。
如果我可以 header 并且每次响应我都通过设置新值来更新它会怎么样。
请告知如何实现这一点。
您可以在您的 bean 中添加 header,并使用 bean 参数绑定来绑定 Map headers
,以便您可以添加计数器。
public String doSomething(String data, @Headers Map headers) {
...
}
查看更多详情
- http://camel.apache.org/parameter-binding-annotations.html
- http://camel.apache.org/bean-binding.html
另一种方法是使用 on-completion 在路由末尾添加 header(需要 Camel 2.15 并使用 before consumer 模式)