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 中都没有提到。预期的行为是什么?
我们在项目中使用 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 中都没有提到。预期的行为是什么?