mirror of
https://github.com/vale981/apollo-server
synced 2025-03-06 10:11:40 -05:00
![]() * Add a wider diversity of `gui` options Although I know we want to remain less tied to the GraphQL Playground GUI options, we definitely want to support a wider variety of options to be passed in. This adds support for specifying partial options either statically or dynamically for the gui, which can be extended to allow for a wider array of guis than only GraphQL playground. * Add boolean option and configuration for tabs * move gui setting into ApolloServer Constructor * document playground configuration in the constructor * update playground types and fixed micro + koa integrations * change gui to playground * docs: change gui to playground * fix logic for playground creation |
||
---|---|---|
.. | ||
src | ||
.npmignore | ||
package.json | ||
README.md | ||
tsconfig.json |
title | description |
---|---|
Micro | Setting up Apollo Server with Micro |
This is the Micro integration for the Apollo community GraphQL Server. Read the docs. Read the CHANGELOG.
Basic GraphQL Microservice
This example demonstrates how to setup a simple microservice, using Micro, that
handles incoming GraphQL requests via the default /graphql
endpoint.
- Package installation.
npm install --save micro apollo-server-micro@rc graphql
index.js
const { ApolloServer, gql } = require('apollo-server-micro');
const typeDefs = gql`
type Query {
sayHello: String
}
`;
const resolvers = {
Query: {
sayHello(root, args, context) {
return 'Hello World!';
},
},
};
const apolloServer = new ApolloServer({ typeDefs, resolvers });
module.exports = apolloServer.createHandler();
package.json
{
"main": "index.js",
"scripts": {
"start": "micro"
}
}
- After an
npm start
, accesshttp://localhost:3000/graphql
in your browser to run queries usinggraphql-playground
, or send GraphQL requests directly to the same URL.
CORS Example
This example demonstrates how to setup a simple Micro + CORS + GraphQL
microservice, using micro-cors
:
- Package installation.
npm install --save micro micro-cors apollo-server-micro@rc graphql
index.js
const cors = require('micro-cors')();
const { ApolloServer, gql } = require('apollo-server-micro');
const typeDefs = gql`
type Query {
sayHello: String
}
`;
const resolvers = {
Query: {
sayHello(root, args, context) {
return 'Hello World!';
},
},
};
const apolloServer = new ApolloServer({ typeDefs, resolvers });
module.exports = cors(apolloServer.createHandler());
package.json
{
"main": "index.js",
"scripts": {
"start": "micro"
}
}
- After an
npm start
, accesshttp://localhost:3000/graphql
in your browser to run queries usinggraphql-playground
, or send GraphQL requests directly to the same URL.
Custom GraphQL Path Example
This example shows how to setup a simple Micro + GraphQL microservice, that uses a custom GraphQL endpoint path:
- Package installation.
npm install --save micro apollo-server-micro@rc graphql
index.js
const { ApolloServer, gql } = require('apollo-server-micro');
const typeDefs = gql`
type Query {
sayHello: String
}
`;
const resolvers = {
Query: {
sayHello(root, args, context) {
return 'Hello World!';
},
},
};
const apolloServer = new ApolloServer({ typeDefs, resolvers });
module.exports = apolloServer.createHandler({ path: '/data' });
package.json
{
"main": "index.js",
"scripts": {
"start": "micro"
}
}
- After an
npm start
, accesshttp://localhost:3000/graphql
in your browser to run queries usinggraphql-playground
, or send GraphQL requests directly to the same URL.
Fully Custom Routing Example
This example demonstrates how to setup a simple Micro + GraphQL microservice,
that uses micro-router
for
fully custom routing:
- Package installation.
npm install --save micro microrouter apollo-server-micro@rc graphql
index.js
const { router, get, post, options } = require('microrouter');
const { ApolloServer, gql } = require('apollo-server-micro');
const typeDefs = gql`
type Query {
sayHello: String
}
`;
const resolvers = {
Query: {
sayHello(root, args, context) {
return 'Hello World!';
},
},
};
const apolloServer = new ApolloServer({ typeDefs, resolvers });
const graphqlPath = '/data';
const graphqlHandler = apolloServer.createHandler({ path: graphqlPath });
module.exports = router(
get('/', (req, res) => 'Welcome!'),
options(graphqlPath, graphqlHandler),
post(graphqlPath, graphqlHandler),
get(graphqlPath, graphqlHandler),
);
package.json
{
"main": "index.js",
"scripts": {
"start": "micro"
}
}
- After an
npm start
, accesshttp://localhost:3000/graphql
in your browser to run queries usinggraphql-playground
, or send GraphQL requests directly to the same URL.