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 }