Apache Camel:根据数据库基础内容验证RESTful JSON输入

时间:2017-10-09 14:48:23

标签: apache-camel

摘要

RESTful POST请求POST /request/{requestName}

POST /request/CreateProduct

{
    "Code": 4711,
    "Name": "My product"
}

将被验证:

  1. 如果给定的$ {header.requestName}中有相应的行 数据库和
  2. 如果提供的参数与requestName匹配 根据数据库中的另一个表,特别是如果所有必需的参数都存在且具有正确的数据类型
  3. 当前路线样本配置

    restConfiguration().component("netty4-http").port(8080).bindingMode(RestBindingMode.json);
    
    rest("request/{requestName}").post()
        .consumes("application/json; charset=UTF-8")
        .produces("application/json; charset=UTF-8")
        .to("direct:newRequest");
    
    from("direct:newRequest").transform().simple("Received request: ${header.requestName}, Body: ${in.body}");
    

    要对

    进行验证的数据库表(MariaDB)

    表:请求

    id | name
    ------------------
     1 | CreateProduct
     2 | UpdateProduct
     3 | DeleteProduct
    

    表:request_parameter

    id | name | type
    -------------------
     1 | Code  | INT
     2 | Name  | STRING
     2 | Price | INT
    

    表request_to_parameter

    request | paramater | required
    ------------------------------
          1 |         1 |        1
          1 |         2 |        1
          1 |         3 |        0
    

    问题

    纯骆驼可以吗?或者我应该实现自己的帮助函数?如何在Camel路线中包含我自己的自定义功能?

1 个答案:

答案 0 :(得分:1)

您可以按照此处所述实施客户处理器: http://camel.apache.org/processor.html

使用Exchange对象,您可以访问标题和正文,并可以提取必要的信息进行验证。