Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerAnypoint DataGraph は、クライアントが使用できるようにするために選択したすべてのデータを統合スキーマに整理します。統合スキーマは、追加するすべての API のすべてのスキーマの単一コレクションで、常に最新です。
統合スキーマに新しい API を追加すると、Anypoint DataGraph は API の RAML または OAS 仕様から API スキーマを生成します。各 API スキーマは、その API が追加されたときに作成されるため、統合スキーマは常に最新です。また、すべての API スキーマは組織内に個別に保存されるため、他のスキーマの整合性に影響を与えることなく、個別に編集できます。
Anypoint DataGraph が生成する API スキーマには、API 仕様で定義した GET リソースとエンティティのコレクション、およびそれらの間のリレーションが含まれます。統合スキーマに新しい API スキーマを追加するときはいつでも、統合スキーマに含まれる種別と項目を設定できます。
種別に適用できるさまざまな設定について学習する前に、次のトピックを参照し、API 仕様に応じて API スキーマに存在する可能性があるさまざまな種別を理解してください。
スキーマで最も一般的な種別であるオブジェクト種別は、GET 応答の一部として返される API 仕様のエンティティを表します。オブジェクト種別にはわかりやすい名前が付けられ、オブジェクトのプロパティを示す項目が含まれています。
たとえば、RAML 仕様では、仕様の各種別要素はオブジェクト種別、列挙種別、結合種別のいずれかになります。また、各種別要素のプロパティは、API スキーマ内のそれらのオブジェクト種別の項目です。
| RAML API 仕様 | API スキーマ |
|---|---|
|
|
Order と Product は両方とも異なるオブジェクト種別であり、それぞれに異なる項目があり、次のように表すことができます。
type Order {
orderId: ID!
date: String!
status: String!
}
type Product {
productId: ID!
name:String!
brand: String!
}
クエリ種別は、要求を行うときの API スキーマへのエントリポイントです。クエリ種別には、API 仕様で定義した GET エンドポイントを表すクエリメソッドが含まれます。
たとえば、/orders/{id} で GET エンドポイントを定義する RAML 仕様では、スキーマのクエリメソッドは ordersById(id) です。
| RAML API 仕様 | API スキーマ |
|---|---|
|
|
スキーマ内の種別は、種別とクエリメソッド間のリレーションに依存するカテゴリに属しています。
レベル-1 種別
これらの種別にはクエリメソッドが関連付けられているため、直接アクセスできます。
たとえば、前の API 仕様では、order/{id} エンドポイントに GET が関連付けられているため、Order はレベル-1 オブジェクト種別です。
このオブジェクト種別には、クエリメソッドを直接使用してアクセスできます。
ordersById (orderId: “123”) {
orderId
date
}
ネストされた種別
これらの種別にはクエリメソッドが関連付けられていないため、レベル-1 種別のクエリメソッドを介してのみアクセスできます。
たとえば、前の API 仕様では、Product はクエリメソッドが関連付けられていないオブジェクト種別です。Product 種別の項目を照会するには、そのレベル-1 種別 Order に関連付けられているメソッドを照会する必要があります。
ordersById(id: "123") {
orderId
product {
name
price
}
}
この構造に従うと、クエリメソッドはレベル 0 種別とみなされます。
列挙種別は、特定の値のセットのみを返すことができる種別です。API 仕様で列挙種別を宣言して、項目が常に有限の値のセットを返すようにすることができます。
たとえば、オブジェクト種別 Processing、Completed、Canceled のいずれかを返す必要がある OrderStatus 種別を定義する RAML 仕様があるとします。
| RAML API 仕様 | API スキーマ |
|---|---|
|
|
結合種別は、他のオブジェクト種別を使用してデータのインスタンスを説明します。結合種別は 1 つ以上の特定のオブジェクト種別で構成されます。
たとえば、RAML 仕様では、Notebook や Phone などの他の種別を使用して Product 種別を定義できます。
| RAML API 仕様 | API スキーマ |
|---|---|
|
|
変異は、データオブジェクトを追加、更新、および削除するために使用する操作です。GraphQL では、変異操作は REST API 仕様で定義した POST、PATCH、PUT、DELETE、および HTTP メソッドを表します。
たとえば、この RAML 仕様は /createOrder/{OrderInput} で POST エンドポイントを定義し、スキーマの変異メソッドは createOrder(input:OrderInput) です。
| RAML API 仕様 | API スキーマ |
|---|---|
|
|
入力種別は、変異操作によって作成されたオブジェクトの属性を表します。入力種別は、変異を実行するときに統合スキーマの情報を変更するために使用する POST、PUT、および DELETE 要求オブジェクトです。
たとえば、/createOrder/{OrderInput}: 変異を使用して OrderInput 入力種別に送信できます。
createOrder (input: “123”) {
orderId
customerEmail
cutomerID
orderDate
product
status
totalAmount
}