Search code examples
schemagraphql

Get GraphQL whole schema query


I want to get the schema from the server. I can get all entities with the types but I'm unable to get the properties.

Getting all types:

query {
  __schema {
    queryType {
      fields {
        name
        type {
          kind
          ofType {
            kind
            name
          }
        }
      }
    }
  }
}

How to get the properties for type:

__type(name: "Person") {
    kind
    name
    fields {
      name
      type {
        kind
        name
        description
      }
    }
  }

How can I get all types with the properties in only 1 request? Or ever better: How can I get the whole schema with the mutators, enums, types ...


Solution

  • Update

    Using graphql-cli is now the recommended workflow to get and update your schema.

    The following commands will get you started:

    # install via NPM
    npm install -g graphql-cli
    
    # Setup your .graphqlconfig file (configure endpoints + schema path)
    graphql init
    
    # Download the schema from the server
    graphql get-schema
    

    You can even listen for schema changes and continuously update your schema by running:

    graphql get-schema --watch
    

    In case you just want to download the GraphQL schema, use the following approach:

    The easiest way to get a GraphQL schema is using the CLI tool get-graphql-schema.

    You can install it via NPM:

    npm install -g get-graphql-schema
    

    There are two ways to get your schema. 1) GraphQL IDL format or 2) JSON introspection query format.

    GraphQL IDL format

    get-graphql-schema ENDPOINT_URL > schema.graphql
    

    JSON introspection format

    get-graphql-schema ENDPOINT_URL --json > schema.json
    

    or

    get-graphql-schema ENDPOINT_URL -j > schema.json
    

    For more information you can refer to the following tutorial: How to download the GraphQL IDL Schema