当前位置: 首页 > 知识库问答 >
问题:

通过REST DSL的Apache Camel筛选器bean响应

戚升
2023-03-14

我目前正在使用新的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
} 
}

Rest的回报对客户来说是空的。

我试图不把过滤器内的方法搜索所有,因为我使用单一的责任原则。

如果我删除。路由()。。。。endRest()响应正常,但未过滤。

使用Apache Camel的其余DSL可以做到这一点,如果可能的话,我做错了什么?

谢谢。

共有1个答案

单于帅
2023-03-14

只有一个路由在rest-dsl中,而不是两者,例如:

.get("/api/list").description("Search all data")
   .route()
     .to("bean:apiService?method=searchAll")
     .to("bean:apiService?method=filter");
 类似资料:
  • 我被安排了即将到来的测试作业,我需要在一个充满电影细节的数据库中搜索带有标点符号的片名。 我唯一的想法是用MySQL的in运算符查找其中带有特定标点符号的名称。 或者另一种方式: 但是,它在逻辑上是不正确的。当我筛选“.”/dot character/时,它也会返回带有“I”的标题。 你能帮帮我吗?提前谢谢!

  • 如果我的配置发生了变化,我不会期望任何筛选器会被命中。 编辑:我正在使用Spring Security 2

  • http://www.django-rest-framework.org/api-guide/filtering/#filtering-abs-query-parameters http://www.django-rest-framework.org/api-guide/fields/#serializermethodfield

  • 我有一个csv,它具有以下结构:

  • 有什么建议吗?

  • 筛选器。 Usage 全部引入 import { Picker } from 'beeshell'; 按需引入 import Picker from 'beeshell/dist/components/Picker'; Examples Code import { Picker } from 'beeshell'; <Picker ref={(c) => { this._pick