schema-id
和 schema-ref
都是可选属性,用于根据 json 模式验证请求正文。
schema-id:已添加到 API 管理实例以进行内容验证的现有架构的名称。如果未指定,则使用 API 定义中的默认架构。
schema-ref: 对于
schema-id
中指定的 JSON 架构,可选引用 JSON 文档中的有效本地引用路径。例如:#/components/schemas/address
。该属性应返回一个 JSON 对象,API 管理将其作为有效的 JSON 架构进行处理。
确保检查Azure API 管理验证策略 |用于内容验证的 Microsoft Docs 架构,无论您是从文件还是 URL 导入,都可以提供正确的架构位置。
正如 @madhuraj 所提到的,schema-id 是您在 Azure APIM 的“架构”部分中添加的架构的名称。 schema-ref 是 API 规范 (swagger/OpenAPI) 中架构定义的路径。 @vilmarci schema-ref 是可选的,但您给出了错误的路径,即“#/components/schemas/event”。 尝试不使用 schema-ref 它会起作用。
基本上在API->Schemas下,我们可以使用名称(Id)定义JSON文档。例如,我们可以定义模式LoginAPI,并在其下定义不同的定义,
{
"components": {
"schemas": {
"LoginModel": {
"type": "object",
"required": [
"email",
"password"
],
"properties": {
"email": "definition",
"password": "definition"
}
}
}
}
}
然后在 validate-content 配置中,您可以使用 schema-id="LoginAPI" 和 schema-ref="#/components/schemas/LoginModel"。