我很难在服务器之间进行 Apollo 突变。
今天我花了很长时间寻找有关在使用
@apollo/server
构建的两个 API 之间传递数据的最佳实践的示例或建议。一种是静态 Express 服务器,一种是使用 @as-integrations
依赖项的 AWS Lambda 函数。
静态服务器支持我的企业的消费者站点,并且将是客户端突变数据的第一个接收者,然后将数据传递到我的 CRM 的 lambda 函数。对我来说很重要的是,数据首先进入静态服务器,然后进入无服务器功能。
我的第一个想法是在静态服务器中的解析器中创建一个 ApolloClient
实例,然后向 lambda 函数发出请求,但我遇到了依赖问题,因为我没有在我的服务器上安装 React。我了解在客户端中使用 ApolloClient
的易于集成性,但我仍然应该能够在服务器中创建客户端以进行 API 到 API 通信,对吗?
到目前为止,我找到的大部分信息都解释了如何使用 Apollo 的方法发出 REST 请求,但这是 API 之间通信的唯一/推荐方式吗?感谢您提供的任何见解或帮助!
你不需要任何 React 的东西来使用 Apollo Client。您想使用
client.query()
而不是 useQuery
(后者是一个 hook,用于 React 应用程序。这种模式在 Apollo 客户端文档中没有特别详细的记录,只有 一个示例,但这就是在服务器-服务器情况下必须使用的模式。
client.query
返回一个承诺,因此您必须在使用结果之前让它解析。
client
.query({
query: gql`
query MyQuery {
id
more fields…
}
`,
})
.then((result) => console.log(result));