Azure API 管理未验证有效负载中的必需属性

Azure API Management does not validate required properties in payload

我们在项目中使用 Azure API 管理,我们希望 APIM 成为我们抵御无效请求的盾牌。由于我们已经在 OpenAPI 规范中指定了有效请求的外观并将其上传到 APIM,因此这似乎是一个合理的假设。

我在我们的 OpenAPI(版本 3.0.1)规范中指定了一个组件,如下所示:

TemperatureRange:
  description: Defines a desired temperature range
  required:
    - min
    - max
  properties:
    min:
      type: number
    max:
      type: number

当上传到 APIM 时,架构看起来不错:

{
    "required": [
        "min",
        "max"
    ],
    "properties": {
        "min": {
            "type": "number"
        },
        "max": {
            "type": "number"
        }
    },
    "description": "Defines a desired temperature range"
}

但是,当我调用使用此定义的 API 时,我可以省略属性,即使它们被标记为必需。

我发送的 payload 看起来像这样,省略了必需的 max 属性:

[{
    "someProperty": "someValue",
    "temperatureRange": {
        "min": -18,
    }
}]

我找不到这方面的任何文档,而且在任何 restrictions 中都没有提到。预期的行为是什么?

看起来这是已请求但尚未实现的功能:https://feedback.azure.com/forums/248703-api-management/suggestions/17369008-schema-validation-in-apim