GraphhQLのgraphhl-java-servletモジュール詳細


本質的には、graphhl-java-servletソフトウェアモジュールはJava Servletを実現し、GraphQLサービスをHTTPを通じてアクセス可能なWebサービスとして発表する。現在、graphhl-java-servletソフトウェアモジュールはGraphQLのQueryとMutationの操作タイプだけをサポートしていますが、subscriptionの操作タイプはまだサポートされていません。
graphhql-java-servletソフトウェアモジュールの最新バージョンは2017.12にリリースされた4.7.0です。
1. grapphql-java-servlet依存度は以下のモジュールです。
  • javax.servlet:javax.servlet-api:3.0.3.1
  • comp.graph-java:graphql-java:6.0
  • common.faster xml.jackson.com:jackson-*:2.8.4
  • 2.Maven項目でgraphhl-java-servletを使用すると、pom.xmlの中で以下のように引用されます。
    
        com.graphql-java
        graphql-java-servlet
        4.7.0
    
    
    3. grapphql-java-servletソフトウェアモジュールは一つのServletであり、つまり唯一のWeb要求経路のみを提供している。
    一つのServletだけであるが、HTTP GET/POST要求を同時にサポートし、要求パラメータによって様々な要求が可能である。1)内部構造照会GET要求
    http://localhost:8080/graphql/schema.json
    2)GraphhQLクエリGET要求http://localhost:8080/graphql/?query={…}3)GraphQLクエリ
    POSTリクエスト
    http://localhost:8080/graphql/
    {query]:「{hello}」
    4)GraphQLクエリPOST要請http://localhost:8080/graphql/{"graphql":{query]:「{hello}」}
    5)GraphQLクエリPOST要請http://localhost:8080/graphql/{query}
    説明:各要求(おそらくqueryまたはmutation)に対して、パラメータを伴うことができる「operation Name」、「variables」、「operation Name」は操作の対象であり、「variables」は操作対象の属性セットである。
    デフォルトで要求されているHTTP Contint-Typeは、aplication/jsonです。charset=UTF-8です
    4.Spring Webアプリケーションでgraphhl-java-servletモジュールを使用する
    1)graphhl-spring-bootモジュールを通じて、間接的にgraphh-java-servletモジュールを使用します。詳細はgraphql-sprig-bootを参照してください。GraphQLのSpring Boot Startersライブラリの概要を合わせてください。
    2)Spring beanの定義は以下の通りです。
    @Bean
    ServletRegistrationBean graphQLServletRegistrationBean(GraphQLSchema schema, ExecutionStrategy executionStrategy, List operationListeners) {
        return new ServletRegistrationBean(new SimpleGraphQLServlet(schema, executionStrategy, operationListeners), "/graphql");
    }
    デフォルトのWeb要求パスは/graphqlです。
    参照リンク:
    https://github.com/graphql-java/graphql-java-servlet