1. 模型的簡介及限定
模型用於描述HTTP協議的請求資料和響應資料。API Gateway通過使用JSON Schema定義模型,用來描述使用者API約定資料的組織方式,比如參數或者傳回值有哪些欄位,這些欄位的取值範圍等。同時,通過定義模型,並在使用者建立的API中加以引用,使用者在API的SDK匯出時,關聯的Model會自動產生對應的POJO類。這樣可以增強使用者傳入參數的便利性,同時可以方便使用者還原序列化返回的資料。
API Gateway模型定義基於JSON架構草案4的規範,但存在一定的條件限制:
僅支援建立元素屬性為Object類型的JSON Schema。
$ref僅支援本使用者的內部Model引用。Model的‘ref’引用地址可以通過CreateModel - 建立模型和DescribeModels - 擷取已建立的模型擷取。‘ref’不支援循環參考。
API Gateway支援的模型可以參考如下定義:
{
"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 Gateway的控制台進行建立。
模型相關操作的控制台入口:
在左側導覽列選擇。
在目標分組,單擊操作列下的模型管理,進入模型管理介面。單擊新增模型。
Swagger匯入建立模型:
API Gateway支援匯入API Gateway的擴充Swagger定義。Swagger檔案中的Model相關內容會在Swagger匯入成功後,會在該分組下自動產生模型。
通過Swagger匯入模型時,同名模型將直接被覆蓋,不會進行使用者確認。
3. 修改和查看模型
完成模型的建立後,可以在模型管理介面點擊查看所需的模型。在模型的詳情頁,可以看到模型的名稱,模型的定義,以及系統為其分配的URI。API Gateway模型間可以通過‘$ref:{URI}’來實現模型間的專案引用。
如果使用者希望對當前模型的資訊進行修改,可以點擊右上方修改按鈕完成模型的修改。
模型的URI不隨模型的更改發生改變。
4. 刪除模型
使用者可以對分組下的模型進行刪除操作。
API Gateway不維護模型和API的關聯關係,刪除模型時可能會引起線上API的SDK匯出失敗等問題。因此,刪除模型請謹慎操作。