1. モデルの紹介と定義
モデルは、HTTP プロトコルの要求データと応答データを記述するために使用されます。API Gateway は JSON スキーマ定義モデルを使用して、パラメーターまたは戻り値にあるフィールド、これらのフィールドの値の範囲など、ユーザー API 規約データの編成方法を記述します。また、モデルを定義し、ユーザーが作成した API でそれを参照することで、ユーザーが API の SDK をエクスポートする際に、バインドされたモデルが対応する POJO クラスを自動的に生成します。これにより、ユーザーの入力パラメーターの利便性が向上し、ユーザーは出力データを逆シリアル化できます。
API Gateway モデル定義は JSON アーキテクチャドラフト 4 の仕様に基づいていますが、一定の条件があります。
- Object 型の要素属性を持つ JSON スキーマのみ作成できます。
- $ref はこのユーザーの内部モデル参照のみをサポートします。モデルの ‘ref’ 参照アドレスは、 CreateModel と Describe Models から取得できます。‘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. モデルの作成
Alibaba Cloud が提供する Openapi-CreateModel を使用してモデルを作成できます。また、API Gateway のコンソールから作成することもできます。
モデル関連操作のコンソール操作箇所:
- [グループ管理] をクリックします。
- [モデル管理] をクリックして、 遷移先の画面でモデルを作成します。
Swagger インポート作成モデル:
API Gateway は Swagger インポート をサポートしています。Swagger ファイル内のモデル関連コンテンツは、 Swagger が正常にインポートされた後で、そのグループ下にモデルを自動的に生成します。注意:Swagger でモデルをインポートすると、同じ名前のモデルはユーザーの確認なしに直接上書きされます。
3. モデルの修正と確認
モデルを作成したら、[モデル管理] 画面で対象のモデルをクリックして確認できます。モデルの詳細ページでは、モデルの名前、モデルの定義、およびシステムによって割り当てられた URI を確認できます。モデル間のプロジェクト参照は、 ‘$ref:{URI}’ を介してAPI Gateway モデル間で実現できます。
ユーザーが現在のモデルの情報を変更する場合は、右上の [変更] ボタンをクリックしてモデルを変更できます。注意:モデルを変更しても、モデルの URI は変更されません。
4. モデルの削除
ユーザーはグループ下のモデルを削除できます。注意:API Gateway はモデルと API のバインドを維持していないため、モデルを削除すると、オンライン API の SDK エクスポートが失敗するなどの問題が発生する可能性があります。そのため、モデルの削除は慎重に行ってください。