https://github.com/grooviter/gql
Groovy GraphQL library
https://github.com/grooviter/gql
graphql groovy-language
Last synced: about 1 year ago
JSON representation
Groovy GraphQL library
- Host: GitHub
- URL: https://github.com/grooviter/gql
- Owner: grooviter
- License: apache-2.0
- Created: 2017-04-01T16:16:04.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2024-11-05T14:54:24.000Z (over 1 year ago)
- Last Synced: 2025-04-01T00:05:57.003Z (over 1 year ago)
- Topics: graphql, groovy-language
- Language: Groovy
- Homepage: http://grooviter.github.io/gql/
- Size: 2.9 MB
- Stars: 49
- Watchers: 5
- Forks: 5
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ccamel - grooviter/gql - Groovy GraphQL library (Groovy)
README
[]() [](https://github.com/grooviter/gql/actions/workflows/gql-release.yml)  
## Description
**GQL** is a set of [Groovy](http://www.groovy-lang.org) DSLs and AST
transformations built on top
of [GraphQL-java](https://github.com/graphql-java/graphql-java) that
make it easier to build GraphQL schemas and execute **GraphQL**
queries without losing type safety.
## Gradle
In order to use `GQL` releases in your Groovy code add the maven central repository and if you'd like to evaluate some
snapshots add the sonatype snapshots repository as well:
```groovy
repositories {
mavenCentral()
maven { url 'https://s01.oss.sonatype.org/content/repositories/snapshots/' } // FOR SNAPSHOTS
}
```
Once you've declared the maven repositories then add the dependencies to your project:
```groovy
dependencies {
implementation 'com.github.grooviter:gql-core:VERSION'
implementation 'com.github.grooviter:gql-ratpack:VERSION'
}
```
## Getting Started
You can directly execute the following example in your Groovy console:
```groovy
@Grab('com.github.grooviter:gql-core:1.1.0')
import gql.DSL
def GraphQLFilm = DSL.type('Film') {
field 'title', GraphQLString
field 'year', GraphQLInt
}
def schema = DSL.schema {
queries {
field('lastFilm') {
type GraphQLFilm
staticValue(title: 'No Time to die', year: 2021)
}
}
}
def query = """
{
lastFilm {
year
title
}
}
"""
def result = DSL.newExecutor(schema).execute(query)
assert result.data.lastFilm.year == 2021
assert result.data.lastFilm.title == 'No time to die'
```
## Documentation
Current documentation is available at: http://grooviter.github.io/gql/