1. 模型的简介及限定

模型用于描述HTTP协议的请求数据和响应数据。API网关通过使用JSON Schema定义模型,用来描述用户API约定数据的组织方式,比如参数或者返回值有哪些字段,这些字段的取值范围等。同时,通过定义模型,并在用户创建的API中加以引用,用户在API的SDK导出时,关联的Model会自动生成对应的POJO类。这样可以增强用户传入参数的便利性,同时可以方便用户反序列化返回的数据。

API网关模型定义基于JSON架构草案4的规范,但存在一定的条件限制:1. 仅支持创建元素属性为Object类型的JSON Schema;2. $ref仅支持本用户的内部Model引用。Model的‘ref’引用地址可以通过CreateModelDescribe Models获取。‘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. 创建模型

您可以通过阿里云提供的Openapi-CreateModel进行模型创建。同样,您也可以通过API网关的控制台进行创建。

模型相关操作的控制台入口

  1. 点击分组管理
  2. 点击模型管理,进入模型管理界面来创建模型

Swagger导入创建模型

Api网关支持Swagger导入。Swagger文件中的Model相关内容会在Swagger导入成功后,会在该分组下自动生成模型。注意:通过Swagger导入模型时,同名模型将直接被覆盖,不会进行用户确认

3. 修改和查看模型

完成模型的创建后,可以在模型管理界面点击查看所需的模型。在模型的详情页,可以看到模型的名称,模型的定义,以及系统为其分配的URI。API网关模型间可以通过‘$ref:{URI}’来实现模型间的项目引用。

如果用户希望对当前模型的信息进行修改,可以点击右上角修改按钮完成模型的修改。需要注意的是:模型的URI不随模型的更改发生改变

4. 删除模型

用户可以对分组下的模型进行删除操作。注意:API网关不维护模型和API的关联关系,删除模型时可能会引起线上API的SDK导出失败等问题。因此,删除模型请谨慎操作。