All Projects → graphql-java-kickstart → Graphql Java Tools

graphql-java-kickstart / Graphql Java Tools

Licence: mit
A schema-first tool for graphql-java inspired by graphql-tools for JS

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects

Projects that are alternatives of or similar to Graphql Java Tools

Jplusone
Tool for automatic detection and asserting "N+1 SELECT problem" occurences in JPA based Spring Boot Java applications and finding origin of JPA issued SQL statements in general
Stars: ✭ 91 (-86.36%)
Mutual labels:  spring-boot, jvm
Kotlin Graphql Sample
Sample implementation of Kotlin+Spring+GraphQL
Stars: ✭ 69 (-89.66%)
Mutual labels:  graphql, spring-boot
Quickperf
QuickPerf is a testing library for Java to quickly evaluate and improve some performance-related properties
Stars: ✭ 231 (-65.37%)
Mutual labels:  spring-boot, jvm
Example Kotlin Springboot Graphql
Projeto de exemplo com API GraphQL com dois crud’s simples, utilizando Kotlin, Spring Boot, Gradle etc.
Stars: ✭ 28 (-95.8%)
Mutual labels:  graphql, spring-boot
Webtau
Webtau (short for web test automation) is a testing API, command line tool and a framework to write unit, integration and end-to-end tests. Test across REST-API, Graph QL, Browser, Database, CLI and Business Logic with consistent set of matchers and concepts. REPL mode speeds-up tests development. Rich reporting cuts down investigation time.
Stars: ✭ 156 (-76.61%)
Mutual labels:  graphql, jvm
Graceful Shutdown Spring Boot
Graceful Shutdown with Spring Boot (Demo)
Stars: ✭ 51 (-92.35%)
Mutual labels:  spring-boot, jvm
Geekshop
极客商城 ~ 一个面向开发者的、基于Spring+GraphQL+Angular的、无前端(headless)电商框架
Stars: ✭ 52 (-92.2%)
Mutual labels:  graphql, spring-boot
Javaok
必看!java后端,亮剑诛仙。java发展路线技术要点。
Stars: ✭ 867 (+29.99%)
Mutual labels:  spring-boot, jvm
Graphql Java Spring Boot Example
Sample GraphQL server implemented with graphql-java and Spring Boot
Stars: ✭ 155 (-76.76%)
Mutual labels:  graphql, spring-boot
Springboot Restful Angular
springBoot,restful,jwt,angular4 搭建的前后端分离后台管理系统
Stars: ✭ 121 (-81.86%)
Mutual labels:  graphql, spring-boot
Shio
✨ :dna: Shio CMS - Model Content, Use GraphQL and Create Site using Javascript with Native Cache and Search.
Stars: ✭ 119 (-82.16%)
Mutual labels:  graphql, spring-boot
Graphqlize
A Clojure & JVM library for developing GraphQL API instantly from Postgres and MySQL databases
Stars: ✭ 240 (-64.02%)
Mutual labels:  graphql, spring-boot
Graphql Spring Boot Starter
Spring boot starter for GraphQL
Stars: ✭ 166 (-75.11%)
Mutual labels:  graphql, spring-boot
Cookbook
🎉🎉🎉JAVA高级架构师技术栈==任何技能通过 “刻意练习” 都可以达到融会贯通的境界,就像烹饪一样,这里有一份JAVA开发技术手册,只需要增加自己练习的次数。🏃🏃🏃
Stars: ✭ 428 (-35.83%)
Mutual labels:  spring-boot, jvm
Este
This repo is suspended.
Stars: ✭ 5,467 (+719.64%)
Mutual labels:  graphql
Java Virtual Machine Specification
Chinese translation of The Java® Virtual Machine Specification.《Java 虚拟机规范(第11版)》中文翻译及示例,Java SE 11 版
Stars: ✭ 649 (-2.7%)
Mutual labels:  jvm
Programminglanguage Series
📚 编程语言语法基础与工程实践,JavaScript | Java | Python | Go | Rust | CPP | Swift
Stars: ✭ 643 (-3.6%)
Mutual labels:  jvm
Practical.cleanarchitecture
Asp.Net Core 5 Clean Architecture (Microservices, Modular Monolith, Monolith) samples (+Blazor, Angular 11, React 17, Vue 2.6), Domain-Driven Design, CQRS, Event Sourcing, SOLID, Asp.Net Core Identity Custom Storage, Identity Server 4 Admin UI, Entity Framework Core, Selenium E2E Testing, SignalR Notification, Hangfire Tasks Scheduling, Health Checks, Security Headers, ...
Stars: ✭ 639 (-4.2%)
Mutual labels:  graphql
Spring Cloud Examples
Spring Cloud 学习案例,服务发现、服务治理、链路追踪、服务监控等
Stars: ✭ 5,829 (+773.91%)
Mutual labels:  spring-boot
Graphql Birdseye
View any GraphQL schema as a dynamic and interactive graph. 🦅
Stars: ✭ 650 (-2.55%)
Mutual labels:  graphql

GraphQL Java Tools

TravisCI Build Maven Central Discuss on GitHub

This library allows you to use the GraphQL schema language to build your graphql-java schema. Inspired by graphql-tools, it parses the given GraphQL schema and allows you to BYOO (bring your own object) to fill in the implementations. GraphQL Java Tools works well if you already have domain POJOs that hold your data (e.g. for RPC, ORM, REST, etc) by allowing you to map these "magically" to GraphQL objects.

GraphQL Java Tools aims for seamless integration with Java, but works for any JVM language. Try it with Kotlin!

We are looking for contributors!

Are you interested in improving our documentation, working on the codebase, reviewing PRs?

Reach out to us on GitHub and join the team!

Quick start

Using Gradle

Set the Kotlin version in your gradle.properties:

kotlin.version=1.3.70

Add the dependency:

compile 'com.graphql-java-kickstart:graphql-java-tools:11.0.0'

Using Maven

Set the Kotlin version in your <properties> section:

<properties>
  <kotlin.version>1.3.70</kotlin.version>
</properties>

Add the dependency:

<dependency>
    <groupId>com.graphql-java-kickstart</groupId>
    <artifactId>graphql-java-tools</artifactId>
    <version>11.0.0</version>
</dependency>

Documentation

Take a look at our documentation for more details.

Why GraphQL Java Tools?

  • Schema First: GraphQL Java Tools allows you to write your schema in a simple, portable way using the GraphQL schema language instead of hard-to-read builders in code.
  • Minimal Boilerplate: It takes a lot of work to describe your GraphQL-Java objects manually, and quickly becomes unreadable. A few libraries exist to ease the boilerplate pain, including GraphQL-Java's built-in schema-first wiring, but none (so far) do type and datafetcher discovery.
  • Stateful Data Fetchers: If you're using an IOC container (like Spring), it's hard to wire up datafetchers that make use of beans you've already defined without a bunch of fragile configuration. GraphQL Java Tools allows you to register "Resolvers" for any type that can bring state along and use that to resolve fields.
  • Generated DataFetchers: GraphQL Java Tools automatically creates data fetchers for your fields that call the appropriate method on your java class. This means all you have to do to create a new field is add the field definition to your schema and add a corresponding method on your class.
  • Type->Class Discovery: GraphQL Java Tools starts from your root objects (Query, Mutation) and, as it's generating data fetchers for you, starts to learn about the classes you use for a certain GraphQL type.
  • Class Validation: Since there aren't any compile-time checks of the type->class relationship, GraphQL Java Tools will warn you if you provide classes/types that you don't need to, as well as erroring if you use the wrong Java class for a certain GraphQL type when it builds the schema.
  • Unit Testing: Since your GraphQL schema is independent of your data model, this makes your classes simple and extremely testable.

WARNING: NoClassDefFoundError when using Spring Boot

If you're using graphl-java-tools with Spring Boot version lower than 2.2 you need to set the kotlin.version in your Spring Boot project explicitly to version 1.3.70, because Spring Boot Starter parent currently overrides it with a 1.2.* version of Kotlin. graphql-java-tools requires 1.3.* however because of its coroutine support. If you don't override this version you will run into a NoClassDefFoundError.

Spring Boot team has indicated the Kotlin version will be upgraded to 1.3 in Spring Boot 2.2.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].