1. 模型的简介及限定
模型用于描述HTTP协议的请求数据和响应数据。API网关通过使用JSON Schema定义模型,用来描述用户API约定数据的组织方式,比如参数或者返回值有哪些字段,这些字段的取值范围等。同时,通过定义模型,并在用户创建的API中加以引用,用户在API的SDK导出时,关联的Model会自动生成对应的POJO类。这样可以增强用户传入参数的便利性,同时可以方便用户反序列化返回的数据。
API网关模型定义基于JSON架构草案4的规范,但存在一定的条件限制:1. 仅支持创建元素属性为Object类型的JSON Schema;2. $ref仅支持本用户的内部Model引用。Model的‘ref’引用地址可以通过CreateModel - 创建模型和DescribeModels - 获取已创建的模型获取。‘ref’不支持循环引用。
Api网关支持的模型可以参考如下定义:
{
"required": ["name", "photoUrls"],
"type": "object",
"properties": {
"id": {
"format": "int64",
"type": "integer"
},
"category": {
"$ref": "https://apigateway.aliyun.com/models/bbc725be4b0b48b79bdd2f6ebbdcc8c0/a5e7741d8a3a4bcb9746275a0db15fcf"
},
"name": {
"pattern": "^\\d{3}-\\d{2}-\\d{4}$",
"type": "string"
},
"status": {
"type": "string"
},
"dogProject": {
"type": "object",
"properties": {
"id": {
"format": "int64",
"maximum": 100,
"exclusiveMaximum": true,
"type": "integer"
},
"name": {
"maxLength": 10,
"type": "string"
}
}
}
}
}
2. 创建模型
您可以通过阿里云提供的CreateModel - 创建模型进行模型创建。同样,您也可以通过API网关的控制台进行创建。
模型相关操作的控制台入口:
点击分组管理
点击模型管理,进入模型管理界面来创建模型
Swagger导入创建模型:
Api网关支持通过导入Swagger创建API。Swagger文件中的Model相关内容会在Swagger导入成功后,会在该分组下自动生成模型。注意:通过Swagger导入模型时,同名模型将直接被覆盖,不会进行用户确认。
3. 修改和查看模型
完成模型的创建后,可以在模型管理界面点击查看所需的模型。在模型的详情页,可以看到模型的名称,模型的定义,以及系统为其分配的URI。API网关模型间可以通过‘$ref:{URI}’来实现模型间的项目引用。
如果用户希望对当前模型的信息进行修改,可以点击右上角修改按钮完成模型的修改。需要注意的是:模型的URI不随模型的更改发生改变
4. 删除模型
用户可以对分组下的模型进行删除操作。注意:API网关不维护模型和API的关联关系,删除模型时可能会引起线上API的SDK导出失败等问题。因此,删除模型请谨慎操作。