構成¶
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 サービスから Denodo にアクセスする際に使用するデータベース URI。デフォルト値はjdbc:vdb://localhost:<PORT>/?noAuth=true
です。Virtual DataPort サーバーのポートを、そのインストール後に変更した場合を除き、この値は変更 しない ようにする必要があります。vdp.admin.user.enabled
:false
の場合、ユーザーアカウント admin (他の管理者アカウントは除きます) から GraphQL サービスにアクセスできません。この機能は、HTTP Basic 認証でのみ使用できます。デフォルト値はfalse
です。
SSL/TLS¶
Denodo GraphQL サービスで HTTPS を有効にする場合は、Spring Boot の server.ssl.*
プロパティを構成ファイルに追加する必要があります。以下に例を示します。
# custom port instead of the default 8085
server.port=8443
# path to the key store that holds the SSL certificate
server.ssl.key-store=path_to_keystore.jks
# password used to generate the certificate
server.ssl.key-store-password=secret
# password to access the key in the key store
server.ssl.key-password=another-secret
GZIP¶
GraphQL の Web サイト では、本番環境の GraphQL サービスは GZip 圧縮を有効にして、 Accept-Encoding: gzip
ヘッダーの送信をクライアントに促すことが推奨されています。
シナリオに応じて、JSON 応答を圧縮することでパフォーマンスが向上する場合もあれば、向上しない場合もあります。この圧縮が有利であることがわかれば、GraphQL サービスで GZip を有効にできます。有効にするには、Spring Boot の server.compression.*
プロパティを構成ファイルに追加します。以下に例を示します。
# 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