Graphql 如何从2个API查询数据
我已经设置了一个Gatsby客户端,它使用Graphql 如何从2个API查询数据,graphql,gatsby,contentful,Graphql,Gatsby,Contentful,我已经设置了一个Gatsby客户端,它使用Gatsby source Contentful插件连接到Contentful。我还连接了一个简单的自定义API,它是使用gatsby源代码graphql插件连接的 当我运行dev服务器时,我能够从操场上的Contentful查询我的页面 我还可以通过操场查询我的自定义API 因此,这两个API都能正常工作,并且与盖茨比有着良好的联系 我想通过编程生成一组具有动态部分(参考)的页面,作者可以根据自己的意愿添加和排序 我使用节点上的…连接以及在每个动态
Gatsby source Contentful
插件连接到Contentful。我还连接了一个简单的自定义API,它是使用gatsby源代码graphql
插件连接的
- 当我运行dev服务器时,我能够从操场上的Contentful查询我的页面李>
- 我还可以通过操场查询我的自定义API
- 因此,这两个API都能正常工作,并且与盖茨比有着良好的联系
…连接以及在每个动态部分中定义的片段来实现这一点。到目前为止一切进展顺利
我的实际问题:
现在我有一个动态部分,它是一个工作列表。该组件需要从Contentful API中获取数据,因为它存储纬度和经度等值。因此,作者可以自由地在地图上设置点并设置半径。我使用组件中的一个片段成功地从Contentful中获取了此信息:
export const query=graphql`
ContentfulJobListMitaDresse上的片段JoblistModule{
…在满足的工作中{
知足的
半径
地理位置{
朗
拉特
}
}
}`
但是,如何将此信息传递给另一个从自定义API获取jobdata的查询?如果我对盖茨比的理解正确,我就必须以某种方式将这两个API连接在一起?或者我可以运行另一个查询,以获取作为变量传入的这些值吗?我将如何以及在哪里实现这一点
我在gatsby node.js
(因为传入的上下文只能用作查询中的变量)和模板文件(因为我一次只能运行一个查询)中,以及组件本身(因为这只接受staticQuery)中都找不到任何方法
我不知道我的误解在哪里。因此,我非常感谢您提供任何提示、帮助或示例。由于您的自定义API是graphQL API,因此您可以使用graphQL工具
包来完成此任务
您需要使用Gatsby的API创建一个解析器。在此解析器中,您的解析函数将调用delegateToSchema
我们有一个类似的问题,我们的博客文章有一个包含ID的“author”字段。然后我们对另一个系统进行graphQL查询,以根据该ID查找作者信息
return {
remoteAuthor: {
type: person,
args: {},
resolve: async (source: ContentfulBlogPost, fieldArgs, context, info) => {
if (!source.author) {
return null
}
// runs the selection on the remote schema
// https://github.com/gatsbyjs/gatsby/issues/14517
return delegateToSchema({
schema: authorsSchema,
operation: 'query',
fieldName: 'Person',
args: { id: source.author },
context,
info,
})
},
},
}
这会在我们的博客文章类型中添加一个“remoteAuthor”字段,每当它被查询时,这些选择都会被代理到存在person
类型的远程模式。对于动态查询-求职者输入geo-(您可以使用post/json查询graphql)。。。下面的链接使用阿波罗(动力学)内盖茨比你为这个信息戈登!我会给它一个机会,只要我回到它和回答,如果这解决了我的问题。。。