ページ内ナビ
概要
GraphQL JavaはGraphQL specificationをJavaで実装するcore libraryです。SDLからschemaを組み立て、DataFetcherをruntime wiringへ接続し、GraphQL execution engineへqueryを渡す構成を取り、transportやWeb frameworkとは分離して利用できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
GraphQLSchemaを中心にquery execution pipelineを構成する
graphql.GraphQLがquery executionのentry pointとなり、schema・execution strategy・validation等を組み合わせてExecutionResultを返します。
出典:[3]
SDLをparseしDataFetcher・scalar・type resolverをRuntimeWiringへ接続する
SchemaParserでSDLをTypeDefinitionRegistryへ変換し、RuntimeWiringでDataFetcher、custom scalar、type resolver等を登録して実行可能なschemaへ組み立てられます。
Instrumentationでvalidation・field fetch等のexecution stepを観測・拡張する
Instrumentation SPIはexecution lifecycleへhookし、field fetchの計測、logging、validation周辺の観測などをrequest単位のstateとともに実装できます。async executionを前提にthread safetyも考慮する必要があります。
出典:[6]
向いている用途
導入前の確認
26.1は26系のbugfix releaseでbreaking changeを含まない
v26.1は26.0に対するbugfix releaseとして、SDL validation、schema rebuild、subscription context等の修正をまとめています。upgrade時は26.0との差分をrelease noteで確認できます。
出典:[2]
consumer bytecodeはJava 11 baselineだがsource build toolchainはJava 25を使う
v26.1のbuild.gradleはJava toolchain 25でbuildしrelease targetを11にしています。library利用環境とrepository自体をbuildするJDK要件は異なるため、contributionやsource buildではtoolchainを分けて確認してください。
出典:[7]
参考にした公式資料
- [1]GraphQL Java v26.1 README(2026-10-04)
- [2]GraphQL Java v26.1 release(2026-10-04)
- [3]GraphQL execution entry point(2026-10-04)
- [4]SchemaParser source(2026-10-04)
- [5]RuntimeWiring source(2026-10-04)
- [6]Instrumentation SPI source(2026-10-04)
- [7]GraphQL Java v26.1 build configuration(2026-10-04)
- [8]GraphQL Java MIT license(2026-10-04)
編集部からの補足
graphql-javaはGraphQL execution engineのcore libraryです。HTTP transportやSpring integrationは別layerなので、server framework・authentication・authorizationはapplication側で設計してください。
3ステップで試す
- 1
GraphQL Java 26.1用の最小Maven projectを作る
consumer baselineのJava 11でcompileするisolated Maven projectに26.1を固定します。
mkdir -p graphql-java-demo/src/main/java/demo && printf '%s\n' '<project xmlns="http://maven.apache.org/POM/4.0.0">' '<modelVersion>4.0.0</modelVersion>' '<groupId>demo</groupId><artifactId>graphql-java-demo</artifactId><version>1.0.0</version>' '<properties><maven.compiler.release>11</maven.compiler.release></properties>' '<dependencies><dependency><groupId>com.graphql-java</groupId><artifactId>graphql-java</artifactId><version>26.1</version></dependency></dependencies>' '</project>' > graphql-java-demo/pom.xml - 2
SDLとDataFetcherから最小schemaを組み立てる
SchemaParser、RuntimeWiring、DataFetcher、GraphQL executionの最小flowを作ります。
printf '%s\n' 'package demo;' 'import graphql.GraphQL;' 'import graphql.ExecutionResult;' 'import graphql.schema.GraphQLSchema;' 'import graphql.schema.idl.*;' 'public class Main {' ' public static void main(String[] args) {' ' var types = new SchemaParser().parse("type Query { hello: String }");' ' var wiring = RuntimeWiring.newRuntimeWiring().type("Query", t -> t.dataFetcher("hello", e -> "world")).build();' ' GraphQLSchema schema = new SchemaGenerator().makeExecutableSchema(types, wiring);' ' ExecutionResult result = GraphQL.newGraphQL(schema).build().execute("{ hello }");' ' System.out.println(result.toSpecification());' ' }' '}' > graphql-java-demo/src/main/java/demo/Main.java - 3
compileしてquery resultを確認する
HTTP serverを立てずcore libraryだけで
{ hello }を実行し、dataが返ることを確認します。cd graphql-java-demo && mvn -q compile dependency:build-classpath -Dmdep.outputFile=cp.txt && java -cp "target/classes:$(cat cp.txt)" demo.Main
成長
成長の推移 · 直近30日
6,220 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 15
- Open PR
- 24
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- Firecrawl188,329 Stars
共通タグ 1件 · 共通カテゴリ 1件
Web検索・scrape・crawl・browser interactionをLLM-ready dataへ変換するAPI
TypeScript - Axios109,258 Stars
共通タグ 1件 · 共通カテゴリ 1件
browser・Node.jsでinterceptor・adapter・timeout・cancellationを共通化するPromise-based HTTP client
JavaScript - FastAPI102,797 Stars
共通タグ 1件 · 共通カテゴリ 1件
Pythonの型宣言から入力検証・依存注入・OpenAPIを一体化するAPI framework
Python - Flask74,844 Stars
共通タグ 1件 · 共通カテゴリ 1件
PythonでURLルーティング・request処理・Jinja templateを組み立てる軽量WSGIフレームワーク
Python - LiteLLM60,101 Stars
共通タグ 1件 · 共通カテゴリ 1件
100以上のLLM providerをOpenAI互換interfaceへ統一し、routing・cost・guardrail・loggingをAI Gatewayへ集約する
Python - GitHub CLI46,526 Stars
共通タグ 1件 · 共通カテゴリ 1件
pull request・issue・repository・GitHub APIの操作を
Goghから実行し、terminal中心の開発workflowへ統合する
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。