GithubHelp home page GithubHelp logo

farm-graphql's Introduction

GraphQL with GraphiQL on Spring Boot

A demo of graphql in spring boot. Runs the graphiql user interface on root so you can play around.

Example Queries

Find all hotels (20 per page)

query {
    hotel {
        uuid
	    name
	}
}

Find all hotels, specifying a page number.

query {
    hotel(page: 2) {
        uuid
	    name
	}
}

Find hotels named tropi%, drill down to show all available translations.

query {
    hotel(name: "tropi%") {
        uuid
        address
	    name
        translations {
            language
            name
            description
        }
	}
}

Show only the french translation.

query {
    hotel(name: "tropi%") {
        uuid
        address
	    name
        translations(language:"fr") {
            language
            name
            description
        }
	}
}

Gotchas

In graphql-spring-boot all public attributes are exposed through graphql. This causes problems when using groovy objects because it tries to expose metaClass and all the other GroovyObject fluff. This isn't a big problem. Schema "type" objects written in java represent the data exposed in the graph.

The graphiql starter appears to require a schema to contain at least one mutation. Again, this isn't a big deal. I've added an echo mutation to keep graphiql happy.

Running

Create a schema using data.sql (in the project root). This is a subset of the farm schema that comes pre-populated with a small amount of test data.

Configure application.yml to point to your database and run gradlew bootrun.

The graphiql interface is available at http://localhost:8080/.

farm-graphql's People

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.