diff --git a/server/package-lock.json b/server/package-lock.json index 308e6eb43..8edb8046a 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -68,6 +68,14 @@ "zen-observable-ts": "^0.8.10" } }, + "apollo-link-context": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/apollo-link-context/-/apollo-link-context-1.0.9.tgz", + "integrity": "sha512-gcC1WH7mTyNtS0bF4fPijepXqnERwZjm1JCkuOT6ADBTpDTXIqK+Ec+/QkVawDO26EV9OX5ujWe4kI1qC6T6tA==", + "requires": { + "apollo-link": "^1.2.3" + } + }, "apollo-link-http": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/apollo-link-http/-/apollo-link-http-1.5.5.tgz", diff --git a/server/package.json b/server/package.json index 196815d35..6d681c8d8 100644 --- a/server/package.json +++ b/server/package.json @@ -24,6 +24,7 @@ "nodemon": "^1.18.4" }, "dependencies": { + "apollo-link-context": "^1.0.9", "apollo-link-http": "^1.5.5", "apollo-server-express": "^1.1.0", "body-parser": "^1.18.3", diff --git a/server/src/index.js b/server/src/index.js index f8afb31a1..77aa81de5 100644 --- a/server/src/index.js +++ b/server/src/index.js @@ -12,6 +12,7 @@ import { } from 'graphql-tools' import fetch from 'node-fetch' import { createHttpLink } from 'apollo-link-http' +import { setContext } from 'apollo-link-context' async function run () { const createRemoteSchema = async (uri) => { @@ -21,9 +22,15 @@ async function run () { }) const databaseServiceSchemaDefinition = await introspectSchema(makeDatabaseServiceLink()) + const http = makeDatabaseServiceLink() + + const link = setContext((request, previousContext) => ( + { headers: previousContext.graphqlContext.headers } + )).concat(http) + return makeRemoteExecutableSchema({ schema: databaseServiceSchemaDefinition, - link: makeDatabaseServiceLink() + link: link }) } @@ -80,7 +87,12 @@ async function run () { const app = express() - app.use('/graphql', bodyParser.json(), graphqlExpress({ schema })) + app.use('/graphql', bodyParser.json(), graphqlExpress(req => { + return ({ + schema: schema, + context: req + }) + })) app.use( '/graphiql',