首页 > 解决方案 > 除了 swagger 中定义的字段之外,避免 json 中的其他字段导致 WSO2 APIM 3.1.0 中的验证失败

问题描述

我们正在尝试通过在 swagger 定义中定义验证条件并在运行时配置下启用模式验证来验证 APIM 3.1.0 中的 json。PFA Swagger 定义。

当除了在 swagger 中定义的字段之外,在请求 json 中传递了其他字段时,验证必须失败,否则网关应该忽略这些额外的字段并且不应该将其传递给后端。但这目前没有发生,如果我们在这里遗漏任何东西,请您建议我们。

示例请求 JSON

注意:在此 JSON 中,“test”字段是在请求中发送的附加参数。

{​​​​​​​“applicationId”:“Test123_3211”,“name”:“Bala krishna”,“dateOfBirth”:“1981-04-11”,“gender”:“FEMALE”,“phonenumber”:“ 9039283630”、“altphonenumber”:“9979979971”、“panCard”:“AAAAV1234N”、“nomineeName”:“Ramji Ambedkar”、“nomineeDOB”:“1976-04-14”、“source”:“ONLINE”、“process ": "Canara HSBC", "callDate": "2018-08-24", "callTime": "17:00", "merType": "VIDEOMER", "instantCall": true, "test": "abcd" }​​​​​​​​</p>

下面是招摇的 API:

swagger: "2.0" info: version: v1.0.0 title: MedicalBookAppointmentAPI description: "此 API 用于预约医疗。\n\n支持的操作:\n\n\t1. Docs APP" 方案:

book-appointment-api-error:标题:错误对象返回 HTTP 状态类型:对象属性:故障:类型:对象属性:代码:格式:int64 类型:整数类型:类型:字符串消息:描述:错误消息。类型:字符串 描述:描述:有关错误消息的详细描述。类型:字符串要求:-代码-消息

标签: jsonwso2swaggerwso2esbswagger-2.0

解决方案


您可以在 swagger 文件中使用additionalPropertiesminProperties/maxProperties并限制有效负载中的其他属性。

  • 如果您知道要限制属性数量,请使用minProperties/maxProperties
  • 如果您不知道要限制的属性数量,请使用additionalProperties

有关更多详细信息,请参阅https://m-saranki.medium.com/unboxing-json-schema-validator-320-2dd944dae6c0


推荐阅读