1. 概要と制限
モデルは、APIのHTTP要求および応答情報を構成するために使用される。 API Gatewayを使用すると、JSONスキーマを使用して、リクエストとレスポンスのパラメーターや値の範囲など、APIのリクエストとレスポンスの情報を定義するモデルを作成できます。 APIの作成時にモデルを作成して参照すると、API Gatewayは、APIが属するAPIグループのSDKにPOJOクラスを自動的に生成します。 これにより、APIのリクエスト情報とレスポンス情報を簡単に構成し、レスポンスデータをデシリアライズすることができます。
API Gatewayでは、JSON Schema Draft-04の標準に基づいてモデルが作成されます。 詳細については、「JSONスキーマ: コア定義と用語draft-zyp-json-Schema-04」をご参照ください。 モデルを作成するときは、次の制限に注意してください。
オブジェクト型のJSONスキーマのみを作成できます。
APIのリクエスト情報とレスポンス情報を定義する場合、自分が作成したモデルのみを参照できます。 CreateModelおよびDescribeModels操作を呼び出すことで、参照用のアドレス ('ref') を取得できます。 循環参照には対応していません。
次のコードスニペットは、モデル定義の例を示しています。
{
"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でモデルを作成できます。 または、API Gatewayコンソールでモデルを作成することもできます。
API Gatewayコンソールでのモデルの作成
API Gatewayコンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[APIグループ] ページで、対象のAPIグループを見つけ、[操作] 列の [Modleの管理] をクリックします。 [モデル] ページで、[モデルの作成] をクリックします。
OpenAPI仕様ファイルのインポートによるモデルの作成
API Gatewayでは、OpenAPI仕様ファイルをインポートしてモデルを作成できます。 詳細については、「SwaggerファイルをインポートしてAPI Gateway拡張機能を持つAPIを作成する」をご参照ください。 APIグループにモデルが定義されているOpenAPI仕様ファイルをインポートすると、API GatewayコンソールでそのAPIグループのモデルが自動的に作成されます。
OpenAPI仕様ファイル内のモデルがAPI Gatewayコンソール内の既存のモデルと同じ名前である場合、OpenAPI仕様ファイル内のモデルは既存のモデルを置き換え、通知されません。
3. モデルの変更と表示
モデルを作成したら、[モデル] ページでモデルを表示できます。 モデルの詳細ページでは、モデル名、モデル定義、およびシステムによってモデルに割り当てられているURIを表示できます。 モデルを定義するときは、$ref:{URI} 形式を使用して別のモデルを参照できます。
モデルを変更する必要がある場合は、右上隅の [変更] をクリックします。
モデルが変更された後、そのURIは変更されません。
4. モデルの削除
APIグループに定義されているモデルを削除できます。
モデルを削除すると、APIのモデルで定義されているリクエストとレスポンスの情報も削除されます。 モデルを参照して運用環境に公開されているAPIの場合、APIが属するAPIグループのSDKがエクスポートされない場合があります。 モデルを削除するときは注意が必要です。