首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache :基于数据库基础内容验证RESTful JSON输入

Apache :基于数据库基础内容验证RESTful JSON输入
EN

Stack Overflow用户
提问于 2017-10-09 14:48:23
回答 1查看 993关注 0票数 0

摘要

RESTful POST请求POST /request/{requestName}

代码语言:javascript
复制
POST /request/CreateProduct

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

将得到验证:

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

当前路由示例配置

代码语言:javascript
复制
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)进行验证

表:请求

代码语言:javascript
复制
id | name
------------------
 1 | CreateProduct
 2 | UpdateProduct
 3 | DeleteProduct

表: request_parameter

代码语言:javascript
复制
id | name | type
-------------------
 1 | Code  | INT
 2 | Name  | STRING
 2 | Price | INT

表request_to_parameter

代码语言:javascript
复制
request | paramater | required
------------------------------
      1 |         1 |        1
      1 |         2 |        1
      1 |         3 |        0

问题

这和纯骆驼有可能吗?或者我应该实现我自己的助手函数?如何将我自己的自定义功能包含在骆驼路线中?

EN

回答 1

Stack Overflow用户

发布于 2017-10-09 15:01:11

您可以实现如下所述的客户处理器:http://camel.apache.org/processor.html

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46649239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档