すべてのプロダクト
Search
ドキュメントセンター

:モデル管理

最終更新日:Mar 20, 2020

1. モデルの紹介と定義

モデルは、HTTP プロトコルの要求データと応答データを記述するために使用されます。API Gateway は JSON スキーマ定義モデルを使用して、パラメーターまたは戻り値にあるフィールド、これらのフィールドの値の範囲など、ユーザー API 規約データの編成方法を記述します。また、モデルを定義し、ユーザーが作成した API でそれを参照することで、ユーザーが API の SDK をエクスポートする際に、バインドされたモデルが対応する POJO クラスを自動的に生成します。これにより、ユーザーの入力パラメーターの利便性が向上し、ユーザーは出力データを逆シリアル化できます。

API Gateway モデル定義は JSON アーキテクチャドラフト 4 の仕様に基づいていますが、一定の条件があります。

  1. Object 型の要素属性を持つ JSON スキーマのみ作成できます。
  2. $ref はこのユーザーの内部モデル参照のみをサポートします。モデルの ‘ref’ 参照アドレスは、 CreateModelDescribe Models から取得できます。‘ref’ は循環参照をサポートしません。

API Gateway でサポートされているモデルは、次のように定義できます。

  1. {
  2. "required": ["name", "photoUrls"],
  3. "type": "object",
  4. "properties": {
  5. "id": {
  6. "format": "int64",
  7. "type": "integer"
  8. },
  9. "category": {
  10. "$ref": "https://apigateway.aliyun.com/models/bbc725be4b0b48b79bdd2f6ebbdcc8c0/a5e7741d8a3a4bcb9746275a0db15fcf"
  11. },
  12. "name": {
  13. "pattern": "^\\d{3}-\\d{2}-\\d{4}$",
  14. "type": "string"
  15. },
  16. "status": {
  17. "type": "string"
  18. },
  19. "dogProject": {
  20. "type": "object",
  21. "properties": {
  22. "id": {
  23. "format": "int64",
  24. "maximum": 100,
  25. "exclusiveMaximum": true,
  26. "type": "integer"
  27. },
  28. "name": {
  29. "maxLength": 10,
  30. "type": "string"
  31. }
  32. }
  33. }
  34. }
  35. }

2. モデルの作成

Alibaba Cloud が提供する Openapi-CreateModel を使用してモデルを作成できます。また、API Gateway のコンソールから作成することもできます。

モデル関連操作のコンソール操作箇所:

  1. [グループ管理] をクリックします。
  2. [モデル管理] をクリックして、 遷移先の画面でモデルを作成します。模型管理

Swagger インポート作成モデル:

API Gateway は Swagger インポート をサポートしています。Swagger ファイル内のモデル関連コンテンツは、 Swagger が正常にインポートされた後で、そのグループ下にモデルを自動的に生成します。注意:Swagger でモデルをインポートすると、同じ名前のモデルはユーザーの確認なしに直接上書きされます

3. モデルの修正と確認

モデルを作成したら、[モデル管理] 画面で対象のモデルをクリックして確認できます。モデルの詳細ページでは、モデルの名前、モデルの定義、およびシステムによって割り当てられた URI を確認できます。モデル間のプロジェクト参照は、 ‘$ref:{URI}’ を介してAPI Gateway モデル間で実現できます。

ユーザーが現在のモデルの情報を変更する場合は、右上の [変更] ボタンをクリックしてモデルを変更できます。注意:モデルを変更しても、モデルの URI は変更されません。

模型管理2

4. モデルの削除

ユーザーはグループ下のモデルを削除できます。注意:API Gateway はモデルと API のバインドを維持していないため、モデルを削除すると、オンライン API の SDK エクスポートが失敗するなどの問題が発生する可能性があります。そのため、モデルの削除は慎重に行ってください。