作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经设置了一个 Gatsby 客户端,它使用 gatsby-source-contentful
连接到 Contentful插入。我还连接了一个简单的自定义 API,它使用 gatsby-source-graphql
连接。插入。
...on Node
来实现这一点与我在每个动态部分中定义的片段连接在一起。到目前为止一切都很好。
export const query = graphql `
fragment JoblistModule on ContentfulJoblisteMitAdresse {
... on ContentfulJoblisteMitAdresse {
contentful_id
radius
geo {
lon
lat
}
}
}`
gatsby-node.js
中也找不到任何方法(因为传入的上下文只能用作查询中的变量),也不能在模板文件中(因为我一次只能运行 1 个查询),也不能在组件本身中(因为这只接受 staticQuery)
最佳答案
由于您的自定义 API 是 graphQL API,您可以使用 delegateToSchema来自 graphql-tools
包来实现这一点。
您需要使用 Gatsby 的 setFieldsOnGraphQLNodeType 创建解析器API。在此解析器中,您的解析函数将调用 delegateToSchema
.
我们有一个类似的问题,我们的博客文章有一个包含 ID 的“作者”字段。然后,我们对另一个系统进行 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,
})
},
},
}
person
类型存在。
关于graphql - 如何从 2 个 API 查询数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60062857/
我是一名优秀的程序员,十分优秀!