request-validation插件 本文将详细介绍requestvalidation插件功能、配置和使用。 功能说明 requestvalidation 插件用于提前验证向上游服务转发的请求。该插件使用 JSON Schema 机制进行数据验证,可以验证请求的 body 及 header 数据。 配置字段 名称 类型 填写要求 默认值 有效值 描述 headerschema object 可选,至少配置 headerschema 和 bodyschema 中任意一个,两者也可以同时使用。 header 数据的 schema 数据结构。 bodyschema object 可选,至少配置 headerschema 和 bodyschema 中任意一个,两者也可以同时使用。 body 数据的 schema 数据结构。 rejectedcode integer 可选 400 [200,...,599] 当请求被拒绝时要返回的状态码。 rejectedmsg string 可选 当请求被拒绝时返回的信息。 配置示例 requestvalidation 使用示例 plaintext bodyschema: { "type": "object", "required": ["requiredpayload"], "properties": {"requiredpayload": {"type": "string"},"booleanpayload": {"type": "boolean"} } } rejectedcode: 400 rejectedmsg: "customize reject message" 请求以下路由 plaintext curl i header "ContentType: application/json" > request POST > data '{"booleanpayload":true}' > 请求中的body没有 requestpayload 字段,请求被拒绝,返回结果为 plaintext HTTP/1.1 400 Bad Request ...... customize reject message 常见的schema数据结构示例: 枚举(Enum)验证 plaintext { "bodyschema": { "type": "object", "required": ["enumpayload"], "properties": { "enumpayload": { "type": "string", "enum": ["enumstring1", "enumstring2"], "default": "enumstring1" } } } }