apollo-server/packages/apollo-server-express
Lukwago Allan c9a372839d Re-export out GraphQLOptions in apollo-server-express (#871)
* Export `GraphQLOptions` type directly from `apollo-server-express`.

Directly export `GraphQLOptions` from the `apollo-server-express` (and
synonymously, `graphql-server-express`) main module, rather than exporting
it only from `./expressApollo`.
2018-03-16 12:48:40 +02:00
..
src Re-export out GraphQLOptions in apollo-server-express (#871) 2018-03-16 12:48:40 +02:00
.npmignore include readme for npm packages 2017-10-23 15:13:31 -07:00
package.json Tick off Prettier checkmarks, which were present on CI but not locally. (#880) 2018-03-16 10:25:07 +02:00
README.md Setup prettier (#724) 2018-01-08 15:08:01 -08:00
tsconfig.json Setup prettier (#724) 2018-01-08 15:08:01 -08:00

title description
Express / Connect Setting up Apollo Server with Express.js or Connect

npm version Build Status Coverage Status Get on Slack

This is the Express and Connect integration of GraphQL Server. Apollo Server is a community-maintained open-source GraphQL server that works with all Node.js HTTP server frameworks: Express, Connect, Hapi, Koa and Restify. Read the docs.

npm install apollo-server-express

Express

import express from 'express';
import bodyParser from 'body-parser';
import { graphqlExpress } from 'apollo-server-express';

const myGraphQLSchema = // ... define or import your schema here!
const PORT = 3000;

const app = express();

// bodyParser is needed just for POST.
app.use('/graphql', bodyParser.json(), graphqlExpress({ schema: myGraphQLSchema }));

app.listen(PORT);

Connect

import connect from 'connect';
import bodyParser from 'body-parser';
import { graphqlConnect } from 'apollo-server-express';
import http from 'http';

const PORT = 3000;

const app = connect();

// bodyParser is needed just for POST.
app.use('/graphql', bodyParser.json());
app.use('/graphql', graphqlConnect({ schema: myGraphQLSchema }));

http.createServer(app).listen(PORT);

Principles

GraphQL Server is built with the following principles in mind:

  • By the community, for the community: GraphQL Server's development is driven by the needs of developers
  • Simplicity: by keeping things simple, GraphQL Server is easier to use, easier to contribute to, and more secure
  • Performance: GraphQL Server is well-tested and production-ready - no modifications needed

Anyone is welcome to contribute to GraphQL Server, just read CONTRIBUTING.md, take a look at the roadmap and make your first PR!