GitHub V4 GraphQL API with Java using some GraphQL

2019-08-25 11:33发布

问题:

For the V3 Version of the API I found quite a few questions here on Stackoverflow. There are also libraries available at https://developer.github.com/v3/libraries/.

I'd rather use the V4 api because I intend to do an integration for the simplegraph open source project see https://github.com/BITPlan/com.bitplan.simplegraph/issues/5

For the V4 API i found the following links so far:

  • https://developer.github.com/v4/explorer/
  • https://developer.github.com/v4/guides/forming-calls/#the-graphql-endpoint
  • https://api.github.com/graphql
  • https://stackoverflow.com/questions/tagged/graphql-java
  • https://github.com/graphcool/get-graphql-schema
  • https://developer.github.com/v4/guides/forming-calls/#example-query
  • https://www.howtographql.com/graphql-java/1-getting-started/
  • http://graphql-java.readthedocs.io/en/v7/schema.html
  • https://github.com/graphql/graphql-js/issues/657

It looks as a starting point a Schema definition like this one:

  • https://github.com/graphql-java/graphql-java/blob/master/src/test/groovy/graphql/StarWarsSchema.java

would be helpful.

Where can I get souch a graphql-java useable schema definition of the github V4 api?

Would it be possible to somehow create this from the Json response of the

query {
  __schema {
    types {
      name
      kind
      description
      fields {
        name
      }
    }
  }
}

query?

At http://wiki.bitplan.com/index.php/GitHub-GraphQL I am documenting my next steps.

回答1:

You're looking at the wrong tool then. graphql-java is an implementation of the GraphQL spec. It's used for developing GraphQL servers in Java.

What you're looking for is a client. There's currently only 2 available, neither great but likely usable.

  • Apollo Android - Don't let the name throw you off, it's perfectly usable from normal Java

  • Shopify's Java gen - Generates a Java client from the given schema, similar to wsdl2java. Requires Ruby.



回答2:

Here: https://github.com/octokit/graphql-schema/blob/master/schema.graphql is the GitHub v4 API schema. You can use this schema with graphql-java library.