如何在 camel rest 中验证 JSON 请求
How to validate the JSON Request in camel rest
我需要根据某些模式验证对 camel 休息服务的传入请求。例如。
在下面给出的请求中
{
"routeId" : "fileBatchRoute",
"action" : "start",
"sourceLocation" : "sourceDirectory",
"destinationLocation" : "destinationDirectory"
}
应根据以下条件验证上述请求
1.必须包含action元素,格式在上面。
2. RouteId应该存在。
您可以使用 json-validator 组件。
使用模式生成可以帮助您工具 JSONschema.net.
根据您的要求(需要 routeId,需要操作并且是 "start"、"stop"、"suspend"、"resume" 之一)架构可能类似于:
routeSchema.json:
{
"definitions": {},
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": [
"routeId",
"action"
],
"properties": {
"routeId": {
"type": "string"
},
"action": {
"type": "string",
"enum": [
"start",
"stop",
"suspend",
"resume"
]
},
"sourceLocation": {
"type": "string"
},
"destinationLocation": {
"type": "string"
}
}
}
路由定义:
.to("json-validator:routeSchema.json")
我需要根据某些模式验证对 camel 休息服务的传入请求。例如。
在下面给出的请求中
{
"routeId" : "fileBatchRoute",
"action" : "start",
"sourceLocation" : "sourceDirectory",
"destinationLocation" : "destinationDirectory"
}
应根据以下条件验证上述请求 1.必须包含action元素,格式在上面。 2. RouteId应该存在。
您可以使用 json-validator 组件。 使用模式生成可以帮助您工具 JSONschema.net.
根据您的要求(需要 routeId,需要操作并且是 "start"、"stop"、"suspend"、"resume" 之一)架构可能类似于:
routeSchema.json:
{
"definitions": {},
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": [
"routeId",
"action"
],
"properties": {
"routeId": {
"type": "string"
},
"action": {
"type": "string",
"enum": [
"start",
"stop",
"suspend",
"resume"
]
},
"sourceLocation": {
"type": "string"
},
"destinationLocation": {
"type": "string"
}
}
}
路由定义:
.to("json-validator:routeSchema.json")