Skip to main content

GraphQL Client API Reference

The GraphQL client provides a comprehensive interface for making GraphQL queries and mutations with caching, error handling, and performance optimizations.

GraphQLClient

The main GraphQL client class for executing queries and mutations.

Constructor

Parameters:
  • endpoint (string): GraphQL API endpoint URL
  • options (object, optional): Client configuration options
Options:
  • headers (object): Default headers to include in requests
  • timeout (number): Request timeout in milliseconds (default: 30000)
  • retries (number): Number of retry attempts (default: 3)
  • cache (CacheManager): Cache manager instance for caching responses
  • auth (AuthManager): Authentication manager for handling auth
  • middlewares (array): Array of middleware functions

Methods

query(query, variables, options)

Execute a GraphQL query.
Parameters:
  • query (string): GraphQL query string
  • variables (object, optional): Query variables
  • options (object, optional): Request-specific options
Returns: Promise resolving to query result data

mutate(mutation, variables, options)

Execute a GraphQL mutation.
Parameters:
  • mutation (string): GraphQL mutation string
  • variables (object, optional): Mutation variables
  • options (object, optional): Request-specific options
Returns: Promise resolving to mutation result data

subscribe(subscription, variables, options)

Execute a GraphQL subscription (WebSocket-based).
Parameters:
  • subscription (string): GraphQL subscription string
  • variables (object, optional): Subscription variables
  • options (object, optional): Subscription options
Returns: EventEmitter for handling subscription events

batch(operations)

Execute multiple GraphQL operations in a single request.
Parameters:
  • operations (array): Array of operation objects with query and variables
Returns: Promise resolving to array of results

setHeader(name, value)

Set a default header for all requests.
Parameters:
  • name (string): Header name
  • value (string): Header value

setHeaders(headers)

Set multiple default headers.
Parameters:
  • headers (object): Object containing header key-value pairs

clearCache()

Clear the client’s cache.

getCacheStats()

Get cache statistics.
Returns: Object with cache statistics

GraphQLQueryBuilder

Builder class for constructing GraphQL queries programmatically.

Constructor

Methods

select(field)

Add a field to select.
Parameters:
  • field (string): Field name to select
Returns: GraphQLQueryBuilder instance (chainable)

selectWithAlias(field, alias)

Add a field with an alias.
Parameters:
  • field (string): Actual field name
  • alias (string): Alias for the field
Returns: GraphQLQueryBuilder instance (chainable)

selectObject(field, subBuilder)

Add a nested object selection.
Parameters:
  • field (string): Object field name
  • subBuilder (GraphQLQueryBuilder): Builder for nested selection
Returns: GraphQLQueryBuilder instance (chainable)

withArguments(args)

Add arguments to the current selection.
Parameters:
  • args (object): Arguments object
Returns: GraphQLQueryBuilder instance (chainable)

withDirective(directive)

Add a directive to the current selection.
Parameters:
  • directive (string): GraphQL directive
Returns: GraphQLQueryBuilder instance (chainable)

build()

Build the GraphQL query string.
Returns: GraphQL query string

buildQuery(operationName, variables)

Build a complete query with operation name and variables.
Parameters:
  • operationName (string, optional): Operation name
  • variables (object, optional): Variables object
Returns: Complete GraphQL query string

GraphQLSchema

Utilities for working with GraphQL schemas.

Constructor

Parameters:
  • schema (string|object): GraphQL schema SDL string or parsed schema object

Methods

getType(name)

Get a type from the schema.
Parameters:
  • name (string): Type name
Returns: Type definition object

getQueryType()

Get the Query type.
Returns: Query type definition

getMutationType()

Get the Mutation type.
Returns: Mutation type definition

getFields(typeName)

Get fields for a given type.
Parameters:
  • typeName (string): Type name
Returns: Array of field names

validateQuery(query)

Validate a GraphQL query against the schema.
Parameters:
  • query (string): GraphQL query string
Returns: Array of validation errors

getPossibleTypes(typeName)

Get possible types for a union or interface.
Parameters:
  • typeName (string): Union or interface type name
Returns: Array of possible type names

createGraphQLMiddleware

Create middleware for handling GraphQL requests.
Parameters:
  • options (object): Middleware configuration options
Options:
  • endpoint (string): GraphQL endpoint URL
  • cache (CacheManager, optional): Cache manager instance
  • auth (AuthManager, optional): Authentication manager
  • introspection (boolean): Enable GraphQL introspection (default: false)
  • playground (boolean): Enable GraphQL playground (default: false)
Returns: Middleware function

Error Types

GraphQLError

Custom error class for GraphQL-related errors.
Properties:
  • code (string): Error code
  • details (object): Additional error details

Common Error Codes

  • GRAPHQL_VALIDATION_ERROR: Query validation failed
  • GRAPHQL_EXECUTION_ERROR: Query execution failed
  • NETWORK_ERROR: Network request failed
  • AUTHENTICATION_ERROR: Authentication failed
  • AUTHORIZATION_ERROR: Authorization failed
  • RATE_LIMIT_ERROR: Rate limit exceeded

Type Definitions

GraphQLOperation

GraphQLResponse

GraphQLRequestOptions

Examples

Basic Query

Cached Query

Mutation with Authentication

Subscription

Using Query Builder

Middleware Usage