验证 POST 操作中的参数长度(Azure API 管理)

Validate length of parameter in POST operation (Azure API Management)

我已经通过此操作在 Azure API 上创建了一个 API 管理:

POST https://example.azure-api.net/product/check
content-type: application/json
{
    "productId":"a77swsa2"
}

productId 是一个不能超过 8 个字符的字符串。我如何保护 Azure APIM 上的 API,以便拒绝所有包含超过 8 个字符的 productId 的请求?现在我看到可以粘贴巨大的字符串并且它全部发送到后端。

您可以通过两种方式做到这一点:

  1. 手动使用 choose 策略和 context.Request.Body.As<Jobject>() 将请求正文解析为 JObject,然后检查 "productId" 以检查其长度,如果它大于 8 个字符,则使用 return-response 使请求失败的策略。
  2. 如果您的 API 架构正确,您可以使用 validate-content 策略。