IBM API Connect中输入参数maxLength配置不生效问题咨询
问题1:maxLength定义方式是否正确
你对maxLength字段本身的用法是符合OpenAPI规范的,string类型参数用maxLength限制最大长度是正确写法,但你的参数定义存在冗余错误:minimum和maximum是用于number/integer类型参数的数值校验字段,不适用于字符串类型,如果你需要限制字符串的最小长度,应该使用minLength而非minimum,建议先清理冗余字段,修正后的参数定义如下:
parameters: - name: test2 type: string maxLength: 10 minLength: 1 # 如需限制最小长度保留该行,不需要可直接删除 required: false in: query description: test2
问题2:IBM API Connect是否支持输入参数最大长度限制
IBM API Connect本身完全支持OpenAPI定义中的参数约束校验,默认未触发校验是因为你没有在API装配流程中开启校验策略:APIC的OpenAPI定义默认仅作为接口文档展示,不会自动对请求参数做约束校验,需要手动配置校验规则才会触发拦截。
修复步骤
- 进入对应API的装配编辑页面,在请求处理流的起始位置添加
Validate(校验)策略 - 策略配置中选择校验对象为「请求」,勾选「根据API的OpenAPI定义校验请求参数和请求体」选项
- 保存配置后重新发布API,此时传入长度超过10的
test2参数就会被拦截返回400格式错误。
内容的提问来源于stack exchange,提问作者Melon Man
相关产品推荐
相关产品推荐

