mirror of
https://github.com/vale981/apollo-server
synced 2025-03-06 10:11:40 -05:00
![]() * Switch to a fork of `apollo-upload-server` to fix missing `core-js` dependency. As reported in https://github.com/apollographql/apollo-server/issues/1542, the `apollo-upload-server` package (v5.0.0, which `apollo-server` relies on) is no longer able to provide a `core-js` package because of change that was outside of its control in a Babel release. The problem is resolved in newer versions of `apollo-upload-server`, however, regrettably, the newer versions of that package (notably, v6 and v7) drop support for Node.js 6 — one of two versions of Node.js that are currently under the terms of the Node.js Foundation's Long-Term-Support (LTS) agreements. Since Apollo Server aims to support versions of Node.js which are under LTS (and will drop support for Node.js 6 in April 2019, per Node.js' schedule) the current, immediate solution is to fork the `apollo-upload-server` package as `@apollographql/apollo-upload-server`. With the inclusion of https://github.com/apollographql/apollo-upload-server/pull/1, we are able to keep supporting Node.js 6. Without this change, every new installation of `apollo-server`, which doesn't have a `package-lock.json` preventing transitive dependency updates - specifically, the updates to `@babel/runtime` versions newer than `-beta.56` - is broken. * [squash] Update to `@apollographql/apollo-upload-server@5.0.2`. * [squash] Update to `@apollographql/apollo-upload-server@5.0.3`. |
||
---|---|---|
.. | ||
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.