構成

GraphQL サービスの構成は、 <DENODO_HOME>/resources/apache-tomcat/webapps/denodo-graphql-service/WEB-INF/classes/application.properties ファイルにあります。

このファイルでは、以下のプロパティを変更できます。

  • cors.allowed-origins: このサービスは、オリジン間リソース共有 (CORS) をサポートしています。CORS の詳細については、「 オリジン間リソース共有 (CORS) 」 (公開されている REST Web サービスの設定) を参照してください。デフォルトでは、 cors.allowed-origins プロパティの値は * です。これは、あらゆるドメインからの CORS リクエストの受け取りが許可されていることを意味します。許可する CORS リクエストの送信元ドメインを制限するには、このプロパティの値 * を、許可する URL のリストに置き換えます (各 URL はカンマで区切ります)。たとえば、「http://foo.com, https://foo.bar.com」と指定します。

  • graphql.enable.filtering: true である場合、データの並べ替え、複雑なフィルタの指定、結果のグループ化、および集計関数の計算を GraphQL クエリで実行できます。false の場合、GraphQL の標準機能のみを実行できます。デフォルトは true です。

  • graphql.max.query.complexity: このプロパティで指定した値よりも複雑さが大きいクエリが実行されないようにします。複雑さは、式 1 + childComplexity で計算します。デフォルト値は 200 です。

  • graphql.max.query.depth: このプロパティで指定した値よりも深さが大きいクエリが実行されないようにします。デフォルト値は 5 です。

  • graphql.endpoint: デフォルト値は /graphql です。

  • query.default-page-size: クエリあたりで返す結果の数。 -1 の場合、すべての結果が取得されます。デフォルト値は 1000 です。

  • vdp.datasource.driverClassName: Denodo ドライバークラスの完全なパッケージ名。値は com.denodo.vdp.jdbc.Driver ですが、これは変更 しない ようにする必要があります。

  • vdp.datasource.jdbcUrl: GraphQL サービスが Virtual DataPort に接続する際に使用する URI。デフォルト値は jdbc:denodo://localhost:<PORT>/?noAuth=true です。

    Virtual DataPort のポートを変更する場合 (デフォルトは 9999)、このプロパティを変更してください。

  • vdp.admin.allowed: ユーザーアカウント admin による GraphQL サービスへのアクセスを許可しない場合は false に設定します。サービスは、HTTP Basic 認証を使用している場合にのみ、このプロパティを考慮します。このプロパティは、他の管理者アカウントには影響を与えません。ユーザーアカウント admin のみに影響を与えます。

    デフォルト値は true です。

GZIP

GraphQL の Web サイト では、本番環境の GraphQL サービスは GZip 圧縮を有効にして、 Accept-Encoding: gzip ヘッダーの送信をクライアントに促すことが推奨されています。

JSON 応答の圧縮によってパフォーマンスが向上するかどうかは、状況によります。

GraphQL サービスで GZip 圧縮を有効にするには、 <DENODO_HOME>/resources/apache-tomcat/webapps/denodo-graphql-service/WEB-INF/classes/application.properties ファイルを次のように編集します。

# enable response compression
server.compression.enabled=true

# comma-separated list of mime types that should be compressed
server.compression.mime-types=application/json, application/graphql