我们在项目中使用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时,我可以省略属性,即使它们被标记为需要。
我发送的有效负载如下所示,省略了所需的max
属性:
[{
"someProperty": "someValue",
"temperatureRange": {
"min": -18,
}
}]
我找不到任何关于这方面的文件,也没有任何限制。预期行为是什么?
看起来这是已请求但尚未实现的功能:https://feedback.azure.com/forums/248703-api-management/suggestions/17369008-schema-validation-in-apim