如何通过API级别APIM策略校验RESTful API的POST请求内容?
在APIM中为指定POST请求添加API级别内容校验的简便实现方式
直接在API级别的策略里通过条件判断精准匹配目标请求,再嵌入内容校验逻辑即可,具体步骤和代码如下:
- 进入你的API管理(APIM)控制台,找到目标RESTful API的API级别策略编辑页面(注意不是单个操作的策略编辑页)
- 在策略的
<inbound>节点内添加以下条件判断+校验逻辑:
<inbound> <!-- 保留你已有的其他API级别策略 --> <choose> <!-- 仅匹配POST方法 + /users路径的请求 --> <when condition="@(context.Request.Method.Equals("POST", StringComparison.OrdinalIgnoreCase) && context.Request.Path.Equals("/users", StringComparison.OrdinalIgnoreCase))"> <!-- 嵌入请求内容校验策略,示例为JSON Schema校验 --> <validate-content unspecified-content-type-action="prevent" max-size="102400" size-exceeded-action="prevent"> <content-type-checks> <content-type match="application/json" validate-as="json" schema-id="user-create-request-schema" /> </content-type-checks> </validate-content> </when> </choose> <!-- 保留你已有的其他API级别策略 --> </inbound>
关键说明:
<choose>+<when>是APIM策略的条件分支语法,能精准过滤出需要校验的目标请求,不会影响/getuser/{userid}的GET请求validate-content是APIM内置的内容校验策略,可按需调整参数:- 替换
schema-id为你提前上传到APIM的用户创建请求JSON Schema的ID - 可修改
unspecified-content-type-action、max-size等参数,自定义校验规则
- 替换
- 这种方式无需给单个操作单独配置策略,所有API级别的请求都会经过这个条件判断,只有符合规则的POST请求才会触发校验
内容的提问来源于stack exchange,提问作者R.A 1
相关产品推荐
相关产品推荐

