class GraphQL::Schema::Printer

Used to convert your {GraphQL::Schema} to a GraphQL schema string

@example print your schema to standard output (via helper)

MySchema = GraphQL::Schema.define(query: QueryType)
puts GraphQL::Schema::Printer.print_schema(MySchema)

@example print your schema to standard output

MySchema = GraphQL::Schema.define(query: QueryType)
puts GraphQL::Schema::Printer.new(MySchema).print_schema

@example print a single type to standard output

query_root = GraphQL::ObjectType.define do
  name "Query"
  description "The query root of this schema"

  field :post do
    type post_type
    resolve ->(obj, args, ctx) { Post.find(args["id"]) }
  end
end

post_type = GraphQL::ObjectType.define do
  name "Post"
  description "A blog post"

  field :id, !types.ID
  field :title, !types.String
  field :body, !types.String
end

MySchema = GraphQL::Schema.define(query: query_root)

printer = GraphQL::Schema::Printer.new(MySchema)
puts printer.print_type(post_type)

Attributes

schema[R]
warden[R]

Public Class Methods

new(schema, context: nil, only: nil, except: nil, introspection: false) click to toggle source

@param schema [GraphQL::Schema] @param context [Hash] @param only [<#call(member, ctx)>] @param except [<#call(member, ctx)>] @param introspection [Boolean] Should include the introspection types in the string?

# File lib/graphql/schema/printer.rb, line 47
def initialize(schema, context: nil, only: nil, except: nil, introspection: false)
  @document_from_schema = GraphQL::Language::DocumentFromSchemaDefinition.new(
    schema,
    context: context,
    only: only,
    except: except,
    include_introspection_types: introspection,
  )

  @document = @document_from_schema.document

  @schema = schema
end
print_introspection_schema() click to toggle source

Return the GraphQL schema string for the introspection type system

print_schema(schema, **args) click to toggle source

Return a GraphQL schema string for the defined types in the schema @param schema [GraphQL::Schema] @param context [Hash] @param only [<#call(member, ctx)>] @param except [<#call(member, ctx)>]

Public Instance Methods

print_directive(directive) click to toggle source
print_schema() click to toggle source

Return a GraphQL schema string for the defined types in the schema

print_type(type) click to toggle source