【发布时间】:2022-07-29 15:12:55
【问题描述】:
我正在使用 apollo federation + typescript 来实现一个带有子图的 graphql 服务器。目前我正在研究网关,我想对其应用中间件,这将执行令牌交换功能。问题是我无法让我的网关运行。这是测试代码。
async function startGateway(port: number) {
const app = express();
const httpServer = http.createServer(app);
app.use(cors({
origin: '*',
credentials: true,
exposedHeaders: ['token']
}));
app.use(jwtMiddleware)
const gateway = new ApolloGateway({
supergraphSdl: new IntrospectAndCompose({
subgraphs: [
{ name: 'subgraph', url: 'http://localhost:8081'}
]
})
});
const server = new ApolloServer({
gateway,
plugins: [ ApolloServerPluginDrainHttpServer({ httpServer })]
});
await server.start();
server.applyMiddleware({ app });
return new Promise((resolve, reject) => {
httpServer.listen(port)
.once('listening', resolve)
.once('error', reject);
})
}
当我运行代码时,我没有收到任何错误或警告,但我无法通过 graphql 客户端连接到我的网关。有什么问题,如何解决?提前谢谢你。
【问题讨论】:
标签: typescript apollo-server apollo-federation apollo-gateway