Awesome
Awesome graphql-java
Libraries and projects related to graphql-java
Inspired by the awesome list thing.
Official Spring integration
- Spring for GraphQL is the official Spring integration for GraphQL, built on GraphQL Java. See the getting started tutorial for how to build a GraphQL service in 15 minutes.
Examples
- todomvc-relay-java: Port of the Relay TodoMVC example to a java backend
- graphql-datetime-sample-app: GraphQL example app with usage of date and time scalars
- spring-petclinic-graphql: Port of the Spring PetClinic to Spring Boot, graphql-java and graphql-spring-boot-starter (using React Apollo in the frontend)
Schema Libraries
Schema First
-
GraphQL Java Generator is available as a Maven plugin and a Gradle plugin. It has two modes :
-
The Client mode generates the Java classes that contains methods to call the GraphQL endpoint , and the POJO that will contain the data returned by the server.
-
The Server mode generates the boilerplate code for graphql-java. It's an accelerator that makes it easier to use graphql-java. You'll only have to implement what's specific to your server, which are the joins between the GraphQL types.
-
-
graphql-apigen: Generate Java APIs with GraphQL Schemas
-
graphql-java-tools: A schema-first tool for graphql-java inspired by graphql-tools for JS
-
graphql-java-codegen-maven-plugin: Maven plugin for generating JVM languages(Such as Scala,Kotlin,Java) types and Resolver interfaces. Works perfectly in conjunction with graphql-java-tools.
-
graphql-java-codegen-gradle-plugin: Gradle plugin for generating JVM languages(Such as Scala,Kotlin,Java) types and Resolver interfaces. Works perfectly in conjunction with graphql-java-tools.
-
graphql-java-codegen-sbt-plugin: SBT plugin for generating JVM languages(Such as Scala,Kotlin,Java) types and Resolver interfaces. Works perfectly in conjunction with graphql-java-tools.
-
rdbms-to-graphql: A Java CLI program that generates a GraphQL schema from a JDBC data source.
-
graphql-schema-from-introspection-generator: A Java CLI program that generates a GraphQL schema from Introspection Query result. Useful for migration from Code First.
-
graphql-braid: Schema stitching - combines GraphQL backends into one schema.
-
lilo: Lilo is a super fast GraphQL stitching library.
-
graphql-orchestrator-java GraphQL Orchestrator/Gateway library that supports Schema Stitching and Apollo Federation directives to combine schema from multiple GraphQL microservices into a single unified schema.
-
test-graphql-java: A simple library to help testing the GraphQL endpoint with schema files using any HTTP Client library.
-
Kobby: Codegen plugin of Kotlin DSL Client by GraphQL schema. The generated DSL supports execution of complex GraphQL queries, mutation and subscriptions in Kotlin with syntax similar to native GraphQL syntax.
Code First
-
graphql-java-annotations: Annotations-based syntax for GraphQL schema definition.
-
spring-graphql-common: Spring Framework GraphQL Library
-
graphql-jpa-query: GraphQL Query Api for JPA 2.1 Entity Models
-
graphql-jpa: JPA Implementation of GraphQL (builds on graphql-java)
-
Elide: Java library that lets you build model driven GraphQL APIs for CRUD and Analytics. It has first class support for JPA annotations.
-
graphkool: GraphQl-java utilities in kotlin
-
schemagen-graphql: GraphQL-Java add-on that adds support for Schema Generation & Execution for enterprise level applications.
-
GraphQL-SPQR: Java 8+ API for rapid development of GraphQL services
-
graphql-emf: Support for EMF models and data
-
Rejoiner: Provides a uniform GraphQL schema on top of gRPC microservices by generating GraphQL types from Protobuf.
-
graphql-kotlin: Code-only GraphQL schema generation for Kotlin
-
graphql-reflector: A simple GraphQL reflection library for Java code-first applications.
-
vertx-graphql-client: An elegant implementation for code-first GraphQL clients
-
MicroProfile GraphQL: Open Specification for Code-first Java GraphQL Services.
-
SmallRye GraphQL: An implementation of the above mentioned Specification used in Quarkus and OpenLiberty
-
Helidon GraphQL: An implementation of the MicroProfile GraphQL Specification using Project Helidon version 2.2.0 and above
Apollo Federation
- federation-jvm: An implementation of the Apollo Federation Specification for graphql-java
Execution Strategies
-
graphql-rxjava: An execution strategy that makes it easier to use rxjava's Observable
-
graphql-java-reactive: An execution strategy which is based on Reactive Streams. Project is evolving.
Exposing a Schema
-
graphql-java-servlet: Servlet that automatically exposes a schema dynamically built from GraphQL queries and mutations.
-
graphql-spring-boot: GraphQL and GraphiQL Spring Framework Boot Starters
-
graphql-jpa-spring-boot-starter: Spring Boot starter for GraphQL JPA; Expose JPA entities with GraphQL.
-
Light Java GraphQL: A lightweight, fast microservices framework with all other cross-cutting concerns addressed that is ready to plug in GraphQL schema.
-
Moqui GraphQL: An addon of Moqui framework to generate GraphQL Schema automatically.
-
GORM GraphQL: An fully customizable addon for GORM (Grails Object Relational Model) to generate a GraphQL schema automatically.
-
Vert.x GraphQL Utils - Vert.x route handler and Vert.x compatible interfaces to handle GraphQL queries in Vert.x applications.
-
dropwizard-graphql - Dropwizard bundle for exposing a GraphQL endpoint (uses graphql-java-servlet internally)
-
graffiti - a headless Java CMS.
-
spring-boot-starter-graphql - Spring Boot Starter for GraphQL.
-
micronaut-graphql: Provides Micronaut GraphQL integration.
-
vertx-web-graphql: Extends Vert.x Web with the GraphQL-Java library so that you can build a GraphQL server.
Validation
- graphql-java-extended-validation: A validation library that allows use of @directives to indicate how to validate graphql input arguments.
Batch Loading
- java-dataloader: A pure java 8 port of Facebook DataLoader
Scalars
-
graphql-java-extended-scalars: A series extended scalars for graphql-java based projects, brought you you by the same team that helps build graphql-java itself
-
graphql-java-datetime: A set of ISO 33601, RFC 3339 compatible date time scalars for GraphQL Java
Tools
- JS GraphQL IntelliJ Plugin: GraphQL language support for WebStorm, IntelliJ IDEA and other IDEs based on the IntelliJ Platform.
- graphql-calculator - A lightweight graphql calculation engine, implemented based on directive.
License
To the extent possible under law, the contributors have waived all copyright and related or neighboring rights to this work.