Class: GraphQL::Types::Relay::BaseConnection

Inherits:
Schema::Object show all
Includes:
ConnectionBehaviors
Defined in:
lib/graphql/types/relay/base_connection.rb

Overview

Use this to implement Relay connections, or take it as inspiration for Relay classes in your own app.

You may wish to copy this code into your own base class, so you can extend your own BaseObject instead of GraphQL::Schema::Object.

Examples:

Implementation a connection and edge

class BaseObject < GraphQL::Schema::Object; end

# Given some object in your app ...
class Types::Post < BaseObject
end

# Make a couple of base classes:
class Types::BaseEdge < GraphQL::Types::Relay::BaseEdge; end
class Types::BaseConnection < GraphQL::Types::Relay::BaseConnection; end

# Then extend them for the object in your app
class Types::PostEdge < Types::BaseEdge
  node_type Types::Post
end

class Types::PostConnection < Types::BaseConnection
  edge_type Types::PostEdge,
            edges_nullable: true,
            edge_nullable: true,
            node_nullable: true,
            nodes_field: true

  # Alternatively, you can call the class methods followed by your edge type
  # edges_nullable true
  # edge_nullable true
  # nodes_nullable true
  # has_nodes_field true
  # edge_type Types::PostEdge
end

See Also:

Constant Summary

Constants included from Schema::Member::HasFields

Schema::Member::HasFields::CONFLICT_FIELD_NAMES, Schema::Member::HasFields::GRAPHQL_RUBY_KEYWORDS, Schema::Member::HasFields::RUBY_KEYWORDS

Constants included from Schema::Member::HasDirectives

Schema::Member::HasDirectives::NO_DIRECTIVES

Constants included from Schema::Member::GraphQLTypeNames

Schema::Member::GraphQLTypeNames::Boolean, Schema::Member::GraphQLTypeNames::ID, Schema::Member::GraphQLTypeNames::Int

Instance Attribute Summary

Attributes inherited from Schema::Object

#context, #object

Method Summary

Methods included from ConnectionBehaviors

add_page_info_field

Methods inherited from Schema::Object

authorized_new, const_missing, #dataloader, #initialize, kind, #raw_value

Methods included from Schema::Member::HasFields

#add_field, #all_field_definitions, #field, #field_class, #fields, #get_field, #global_id_field, #own_fields

Methods included from Schema::Member::HasInterfaces

#implements, #interface_type_memberships, #interfaces, #own_interface_type_memberships

Methods included from Schema::Member::BaseDSLMethods

#accessible?, #authorized?, #default_graphql_name, #description, #graphql_name, #introspection, #introspection?, #mutation, #name, #overridden_graphql_name, #visible?

Methods included from Schema::Member::BaseDSLMethods::ConfigurationExtension

#inherited

Methods included from Schema::Member::TypeSystemHelpers

#kind, #list?, #non_null?, #to_list_type, #to_non_null_type, #to_type_signature

Methods included from Schema::Member::Scoped

#scope_items

Methods included from Schema::Member::RelayShortcuts

#connection_type, #connection_type_class, #edge_type, #edge_type_class

Methods included from Schema::Member::HasPath

#path

Methods included from Schema::Member::HasAstNode

#ast_node

Methods included from Schema::Member::HasDirectives

#directive, #directives, #remove_directive

Constructor Details

This class inherits a constructor from GraphQL::Schema::Object