【问题标题】:Apache Camel: Validate RESTful JSON input based on databse base contentApache Camel:基于数据库基础内容验证 RESTful JSON 输入
【发布时间】:2017-10-09 14:48:23
【问题描述】:

总结

一个 RESTful POST 请求POST /request/{requestName}

POST /request/CreateProduct

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

待验证:

  1. 如果给定的 ${header.requestName} 在 数据库和
  2. 如果提供的参数与requestName匹配 根据数据库中的另一个表,特别是如果所有必需的参数都存在并且具有正确的数据类型

当前路线示例配置

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 路由中包含我自己的自定义函数?

【问题讨论】:

    标签: apache-camel


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      • 2017-02-26
      • 2012-12-26
      • 1970-01-01
      • 2012-04-10
      • 2020-06-02
      相关资源
      最近更新 更多