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

Apache Camel:查询参数与标头参数

方寒
2023-03-14

我目前正在试用Apache camel(作为路由引擎)。我知道Camel支持多个DSL,并且可以使用Java(JavaDSL)或Spring(Spring DSL)进行配置。

问题:
我有以下Spring DSL配置。这个想法是,如果传入的请求具有名为“name”的头参数,它将命中当子句或其他方式将请求路由到google:

 <camel:route>
    <camel:from uri="servlet:///test" />
    <camel:choice>
        <camel:when>
            <camel:header>name</camel:header>
            <camel:transform>
                <camel:simple>Hello ${header.name} how are you?</camel:simple>
            </camel:transform>
        </camel:when>
        <camel:otherwise>
                <camel:to uri="http://www.google.com?bridgeEndpoint=true" />
        </camel:otherwise>
    </camel:choice>
</camel:route>

我希望上面的配置只适用于Header参数。然而,我注意到,这种配置甚至适用于查询参数,如以下请求所示:

http://localhost:8080/<war-context>/test?name=test

有没有办法确保它只适用于标题参数?

共有1个答案

于嘉许
2023-03-14

这里有很好的文档记录,查询参数被复制到servlet组件中的交换头。

 类似资料:
  • 问题内容: 我想知道是在URL中使用矩阵还是查询参数。我发现对该主题的较早讨论并不令人满意。 例子 带有查询参数的URL:http://some.where/thing?paramA = 1&paramB = 6542 带有矩阵参数的URL:http://some.where/thing; paramA = 1; paramB = 6542 乍看之下,矩阵参数似乎只有优点: 更具可读性 不需要对X

  • 查询创建工具及查询编辑器都支持在查询文本使用参数。你可以设置查询参数来在每次运行查询时添加变量值。参数应作为一个识别符以 $ 开头,[ ] 括住,例如 [$任何名]。 运行查询及 输入参数 对话框提供你输入想要搜索的数据。

  • 查询支持在查询文本内使用参数。你可以设置查询参数,于每次运行查询时添加变量值。参数是一个以 $ 开头以及用 [ ] 括住的标识符,例如:[$任何名]。 运行查询时,你可以在“输入参数”对话框输入你想要搜索的数据。如勾选“原始模式”选项,将不会在传递输入值到查询时添加引号。

  • 查询支持在查询文本内使用参数。你可以设置查询参数,于每次运行查询时添加变量值。参数是一个以 $ 开头以及用 [ ] 括住的标识符,例如:[$任何名]。 运行查询时,你可以在“输入参数”对话框输入你想要搜索的数据。如勾选“原始模式”选项,将不会在传递输入值到查询时添加引号。

  • 查询支持在查询文本内使用参数。你可以设置查询参数,于每次运行查询时添加变量值。参数是一个以 $ 开头以及用 [ ] 括住的标识符,例如:[$任何名]。 运行查询时,你可以在“输入参数”对话框输入你想要搜索的数据。如勾选“原始模式”选项,将不会在传递输入值到查询时添加引号。

  • 如上所述,添加一个方法参数后,springfox会将其选中,当我查看swagger ui时,它有一个用于头的字段。这正是我想要的。我可以告诉springfox在一组方法上包含这个头参数,而不必在方法本身上包含参数吗?我们真正要做的是一个servlet过滤器,它使用头,我们希望通过swagger ui轻松设置它。