This API reference documents the exports from the apollo-server, and apollo-server/{variant} packages (e.g. apollo-server/express). Both the root module and the module sub-paths export the same functionality.

ApolloServer

The core of an Apollo Server implementation. For a complete example, see the Building a server section within “Essentials”.

constructor(options): <ApolloServer>

Parameters

Returns

ApolloServer

listen(options): Promise

Parameters

The options supports all Node.js

// engine launcher options
engineLauncherOptions?: EngineLauncherOptions;

// WebSocket options
keepAlive?: number;
onConnect?: ( connectionParams: Object, websocket: WebSocket, context: ConnectionContext, ) => any; onDisconnect?: (websocket: WebSocket, context: ConnectionContext) => any;

Returns

Promise

applyMiddleware(app, options): void

gql

The gql is a template literal tag. Template literals were introduced in recent versions of ECMAScript to provide embedded expressions (i.e. `A string with interpolated ${variables}`) and template literal tags exist to provide additional functionality for what would otherwise be a normal template literal.

In the case of GraphQL, the gql tag is used to surround GraphQL operation and schema language (which are represented as Strings), and makes it easier to differentiate from ordinary strings. This is particularly useful when performing static analysis on GraphQL language (e.g. to enable syntax highlighting, code generation, etc.) and avoids need for tools to “guess” if a string contains GraphQL language.

Usage

Import the gql template literal tag into the current context from the apollo-server module:

const { gql } = require('apollo-server');

Then, place GraphQL schema definitions (SDL), queries or other operations into the gql template literal tag. Keep in mind that template literals use the grave accent (`) and not normal quotation marks (e.g. not " or '):

const typeDefs = gql`
  type Author {
    name
  }
`;

makeExecutableSchema

addMockFunctionsToSchema(options)

The addMockFunctionsToSchema method is re-exported from apollo-server as a convenience.

Given an instance of a GraphQLSchema and a mock object, modifies the schema (in place) to return mock data for any valid query that is sent to the server.

If preserveResolvers is set to true, existing resolve functions will not be overwritten to provide mock data. This can be used to mock some parts of the server and not others.

Parameters

Usage

const { addMockFunctionsToSchema } = require('apollo-server');

// We'll make an assumption that an executable schema
// is already available from the `./schema` file.
const executableSchema = require('./schema');

addMockFunctionsToSchema({
  schema: executableSchema,
  mocks: {
    // Mocks the `Int` scalar type to always return `12345`.
    Int: () => 12345,

    // Mocks the `Movies` type to always return 'Titanic'.
    Movies: () => 'Titanic',
  },
  preserveResolvers: false,
});