使用 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&region=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(),我通常会更快。