Denodo GraphQL サービス¶
GraphQL は、データクエリ言語であり、そのクエリをデータに対して実行するためのランタイムです。
必要としているデータをクライアントがリクエストできるようにします。
1 回のリクエストで多くのリソースを取得するため、API リクエストの回数を削減できます。
Denodo GraphQL サービス によって、Denodo 仮想データモデルに対する GraphQL クエリの実行が可能になるので、あらゆるデータソースに対して graphQL のようなクエリを実行できるようになります。
GraphQL サービスにアクセスするには、http://denodo-server.acme.com:9090/denodo-graphql-service/graphql/<database>/schema.json に移動します。
Virtual DataPort が起動していれば、このサービスをいつでも使用できます。
注釈
URL で <database>
を指定する必要があります。
Denodo GraphQL サービスはボトムアップの考え方に従っているので、Denodo のビューとストアドプロシージャのメタデータから自動的に API 仕様が生成されます。
GraphQL サービスでは、Denodo データベースのビューとストアドプロシージャごとにクエリタイプが作成されます。ビューの各フィールドは、そのビューオブジェクトの子として扱われます。ストアドプロシージャオブジェクトの場合は、パラメータが同様の扱いになります。Denodo のアソシエーションは、別々のオブジェクト間のネストしたリレーションシップにマッピングされるので、GraphQL クエリでは、関連するオブジェクトとそのフィールドが 1 回のリクエストでフェッチされます。
type Query {
order(order_id: Int, cust_id: Int, total_price: BigInteger, order_desc: String, order_date: Timestamp, last_updated_time: Timestamp, _first: Int, _offset: Int): [order]!
}
type order {
order_id: Int
cust_id: Int
total_price: BigInteger
order_desc: String
order_date: Timestamp
last_updated_time: Timestamp
order_detail: [order_detail]! # Denodo Association
}
# Custom Scalar for Timestamp.
# Its format is:yyyy-MM-dd hh:mm:ss[.sss]
scalar Timestamp
Denodo GraphQL サービスの応答は、 JSON 形式で返されます。
Denodo の権限システムが適用されるので、各ユーザーには、アクセスを認可されているビューとストアドプロシージャのみが表示されます。
機能¶
Denodo GraphQL サービスは、以下の機能を提供します。
Denodo データベースへの 読み取り専用 アクセス
改ページ
フィルタリング (
graphql.enable.filtering
プロパティがtrue
の場合)並べ替え (
graphql.enable.filtering
プロパティがtrue
の場合)Group by と集計関数 (
graphql.enable.filtering
プロパティがtrue
の場合)HTTP 認証
Basic
SPNEGO (Kerberos)
OAuth 2.0
GraphQL サービスの典型的な用途は JavaScript エコシステムからのクエリ実行であるため、デフォルトでオリジン間リソース共有 (CORS) が有効になっています。そのため、CORS を使用する前に、 ** ``cors.allowed-origins`` ** プロパティを調整する必要があります 。
詳細については、「 Configuration 」を参照してください。