validate
Processor that validates payloads by a given schema. Fails message processing if validation fails.
Properties
Name | Summary |
---|---|
|
The schema to validate against. Can be either the actual schema text or a resource-registry ID on the format |
|
The |
|
Optional, descriptive name for the processor. |
|
Required identifier of the processor, unique across all processors within the flow. Must be between 3 and 30 characters long; contain only lower and uppercase alphabetical characters (a-z and A-Z), numbers, dashes ("-"), and underscores ("_"); and start with an alphabetical character. In other words, it adheres to the regex pattern |
|
Optional set of custom properties in a simple jdk-format, that are added to the message exchange properties before processing the incoming payload. Any existing properties with the same name will be replaced by properties defined here. |
|
Whether the incoming payload is available for error processing on failure. Defaults to |
Sub-builders
Name | Summary |
---|---|
Strategy for describing how a processor’s message is logged on the server. |
|
Strategy for archiving payloads. |
|
Strategy that customizes the conversion of an incoming payload by a processor (e.g., string to object). Should be used when the processor’s default conversion logic cannot be used. |
Details
Validation Sources
The validate
processor can load validation content from the Resource Registry in the following manner:
validate {
id = "xmlValidate"
schema = "XSD:meterreadings:latest"
format = ValidationFormat.XML
}
The resource type can be either XSD
for XML validations or JsonSchema2019-09
for JSON compliant validations.
The schema text can also be written verbatim in the schema
property itself, as the following demonstrates:
validate {
id = "jsonValidate"
schema = """
{
"$id": "https://example.com/person.schema.json",
"$schema": "https://json-schema.org/draft/2019-09/schema",
"type": "object",
"properties": {
"myValue": {
"type": "string",
"maxLength": 10
}
}
}
""".trimIndent()
format = ValidationFormat.JSON
}
Refer to the JSON Schema specifications for help on writing JSON validations. |
Message Processing
If a payload does not meet the validation criteria, message processing will be interrupted with a non-transient error.
In a REST-based flow, the response status code becomes 400
, and the response body includes a message
property detailing the validation failure.
The validate
processor converts the incoming payload to a string.
If validation is successful, the payload is passed on to the next processor as a string.