Hi,
I have issue with response headers from server, which do not pass to client.
My Apollo server:
console.time('⏳ ~ gatewayBuilder')
export const gatewayBuilder = async (app: Express, serviceList: ServiceEndpointDefinition[]) => {
console.time('⏳ ~ ApolloGateway')
const gateway = new ApolloGateway({
serviceList,
buildService: ({ url }) => new TenantDataSource({ url }),
})
console.timeEnd('⏳ ~ ApolloGateway')
console.time('⏳ ~ ApolloServer')
const plugins = []
if (process.env.PLAYGROUND_ENABLED === "true") {
plugins.push(ApolloServerPluginLandingPageGraphQLPlayground())
}
const server = new ApolloServer({
gateway,
plugins: plugins,
introspection: true,
context: ({ req, res }) => {
res.append("Access-Control-Expose-Headers", "X-Correlation-ID");
const tenantId = req.headers['x-tenantid'] || null
const acceptLanguage = req.headers['accept-language'] || null
const authorization = req.headers.authorization || GLOBAL_VARS.authToken
const correlationId = req.headers['x-correlation-id'] || null
return { tenantId, acceptLanguage, authorization, correlationId, req, res }
},
formatError: (err: GraphQLError) => {
logger.error('----------------------------')
console.error('❌ ~ ApolloServer err: ', err)
return new ApolloError(err.message, err.extensions.exception?.code, err.extensions)
}
})
console.timeEnd('⏳ ~ ApolloServer')
await server.start()
server.applyMiddleware({ app, path: '/graphql'})
}
console.timeEnd('⏳ ~ gatewayBuilder')
My BE server (Java Spring) returns custom response header: X-Correlation-ID
In didReceiveResponse I see what response header:
But how pass that header to client?
Thanks