首先总结一下:我想知道如何从Gatsby将页面的URL发送回Strapi,以便用户在创建页面时可以在不可编辑的字段中看到它。
我试图找出在页面构建完成后是否可以在Strapi中对字段进行突变。
我正在生成50-60个着陆页,它们完成构建后会得到自己的路径。
例如:
https://test.com/newly-generated-page
我想做的是,每次用户创建新页面并将其分配给数据库中的该页面时,我都希望将该路径发送回Strapi,以便用户可以在“页面路径”字段中看到它。 / p>
因此在Strapi中将有类似的内容:
页面路径:https://test.com/newly-generated-page
其中一种选择是对React页面模板中的那个端点发出Axios PUT请求,但是每次页面渲染时都会调用该API。
其他选项听起来更好-在盖茨比(Gatsby)构建完该页面后立即执行。
获取具有GQL的所有着陆页路径的列表(就像我在下面的代码中所做的一样),并将该信息从Gatbsy发送回Strapi(那部分还没有完成)。
我尝试通过gatsby-node.js实现它,但似乎找不到解决方案。
我已经在gatsby-node.js中使用Gatsby的onPostBuild API尝试了类似的方法,我设法获得了所有路径的列表,但我不确定这是否是正确的方法:< / p>
exports.onPostBuild = ({ graphql }) => {
const getPagePaths = makeRequest(
graphql,
`
{
allSitePage {
nodes {
path
id
}
}
}
`
).then(result => {
result.data.allSitePage.nodes.forEach(({ path, id }) => {
console.log(path, id)
})
})
return Promise.all([
getPagePaths
])
}
因此,现在在调用postBuild API并构建了所有的gatsby页面之后,我得到了所有页面PATH的列表-我需要使用API PUT请求将它们发送回Strapi,并将其分配给Strapi字段,如下所示:我在上面提到过。
有人对此有任何想法吗?
我猜有2个选项-Axios PUT请求或某种突变