使用 Apache Camel 描述 DynamoDB table
Describe a DynamoDB table using Apache Camel
我正在尝试使用 Apache Camel aws2 DyanamoDB 组件。其中有一个操作DescribeTable
。我正在尝试 out.I 像这样休息 API ->
.post("dynamodb-describe-table")
.route()
.process(new Processor(){
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader("CamelAwsDdbTableName", "user");
}
})
.toD("aws2-ddb://user?accessKey=insert&secretKey=insert®ion=us-east-1&operation=DescribeTable")
.endRest();
此操作 运行 成功,但响应为空。为什么会这样?
操作DescribeTable
没有returnbody。所有属性都以 Message
headers 的形式 returned。
此操作的所有 headers return 都列在 AWS DynamoDB documentation.
中
您有很多创建选项 body,例如。与 MVEL:
.transform().mvel("{" +
"'tableSize': exchange.in.headers.CamelAwsDdbTableSize," +
"'status': 'exchange.in.headers.CamelAwsDdbTableStatus'" +
"}")
或Processor
:
.process( exchange ->
exchange.getIn().setBody(
new HashMap<String, Object>(){{
put("tableSize", exchange.getMessage().getHeader("CamelAwsDdbTableSize"));
put("status", exchange.getMessage().getHeader("CamelAwsDdbTableStatus"));
// ...
}}
)
)
在你的 toD()
和 endRest()
之间。
顺便说一句,我在你的 URI 中没有看到任何动态部分,你应该可以只使用 to()
,我通常会更快。
我正在尝试使用 Apache Camel aws2 DyanamoDB 组件。其中有一个操作DescribeTable
。我正在尝试 out.I 像这样休息 API ->
.post("dynamodb-describe-table")
.route()
.process(new Processor(){
@Override
public void process(Exchange exchange) throws Exception {
exchange.getIn().setHeader("CamelAwsDdbTableName", "user");
}
})
.toD("aws2-ddb://user?accessKey=insert&secretKey=insert®ion=us-east-1&operation=DescribeTable")
.endRest();
此操作 运行 成功,但响应为空。为什么会这样?
操作DescribeTable
没有returnbody。所有属性都以 Message
headers 的形式 returned。
此操作的所有 headers return 都列在 AWS DynamoDB documentation.
您有很多创建选项 body,例如。与 MVEL:
.transform().mvel("{" +
"'tableSize': exchange.in.headers.CamelAwsDdbTableSize," +
"'status': 'exchange.in.headers.CamelAwsDdbTableStatus'" +
"}")
或Processor
:
.process( exchange ->
exchange.getIn().setBody(
new HashMap<String, Object>(){{
put("tableSize", exchange.getMessage().getHeader("CamelAwsDdbTableSize"));
put("status", exchange.getMessage().getHeader("CamelAwsDdbTableStatus"));
// ...
}}
)
)
在你的 toD()
和 endRest()
之间。
顺便说一句,我在你的 URI 中没有看到任何动态部分,你应该可以只使用 to()
,我通常会更快。