我有一个使用 gatsby-source-apiserver 访问的自定义 api 端点。我的数据库中有没有转换为图像节点的图像 - 即允许 childimagesharp
在我的graphql中,我有这个结构:
query MyQuery {
allSubmissions {
edges {
node {
works {
mediaItems {
sourceFilename
}
}
}
}
}
}
sourceFilename 是一个字符串,如“thisisanimage.jpg” - 如果我在其上附加一个 url,如“ http://example.com/media ”,则图像工作正常。我不确定如何继续,我查看了 createResolvers 但不完全了解如何实现它。
这是我迄今为止尝试过的 - 似乎没有做太多(除了在我的终端中获得“发生任何事情”的评论,但不是下一个......
exports.createResolvers = ({
actions,
cache,
createNodeId,
createResolvers,
store,
reporter,
}) => {
const { createNode } = actions
reporter.info(anything happening?)
createResolvers({
submissions: {
works: {
mediaItems: {
type: File,
resolve(sourceFilename, args, context, info) {
reporter.info(
Resolving source: ${sourceFilename} ${args} ${context} ${info}
)
return createRemoteFileNode({
url:
"https://example.com/media/" +
sourceFilename.sourceFilename,
store,
cache,
createNode,
createNodeId,
reporter,
})
},
},
},
},
})
}
可能很重要的一点是,works 是一个 mediaItems 数组,它本身就是一个字段数组,其中 sourceFilename 就是其中之一。请参阅随附的屏幕截图