首页 > 解决方案 > Gatsby / GraphQL 中的可选查询

问题描述

我有一个内容丰富的 Gatsby 站点,初始页面构建 GraphQL 如下所示:

{
    allContentfulProduct {
        edges {
            node {
                slug
                contentfulid
            }
        }
    }
}

这在使用预览 API 时工作正常,但在使用生产 API 时它会失败,除非我至少Product发布了 1 个条目:

There was an error in your GraphQL query:

Cannot query field "allContentfulProduct" on type "Query". Did you mean ... [suggested entry names] ?

我很确定当我发布一个Product东西时会按预期工作,但是有没有办法让这个查询成为可选的。查询应该返回零个结果,因此不会创建任何页面(如果没有发布条目,Product则为预期结果)Product

标签: graphqlgatsby

解决方案


尝试添加到您的gatsby-node.js文件中并解决它。

exports.createSchemaCustomization = ({ actions }) => {
  const { createTypes } = actions
  const typeDefs = `
       type allContentfulProduct implements Node{
       slug: String,
       contentfulid: String
  }`

推荐阅读