структура запроса gatsby-source-prismic-graphql - PullRequest
0 голосов
/ 08 октября 2019

Любой, кто сделал переход с gatsby-source-prismic на gatsby-source-prismic-graphql , знает, совпадают ли структура запроса и наименование.

Например, в настоящее время я использую что-то вроде ниже для gatsby-source-prismic .

  export const query = graphql`
    query pageQuery($uid: String!) {
      page: prismicPageTemplate(uid: { eq: $uid }) {
        uid
        type
        data {
          title
          body {
            ... on PrismicPageTemplateBodyQuestionSlice {
              slice_type
              primary {
                name
                title {
                  html
                  text
                }
              }
            }
         }
      }
    }
}

Я прочитал документы по обоим плагинам, а также видел, как другие задают похожие вопросы. Документы для gatsby-source-prismic включают это в качестве соглашения об именах

Все документы извлекаются из вашего хранилища и создаются как prismic $ {contentTypeName} и allPrismic $ {contentTypeName}, где $ {contentTypeName} - это идентификатор API типа содержимого вашего документа.

Должен ли я переписать все свои запросы, если я хочу переключиться на gatsby-source-prismic-graphql илииспользуют ли они одинаковое соглашение для именования?

Ответы [ 2 ]

1 голос
/ 08 октября 2019

Единственное отличие, которое я заметил, состоит в том, что запросы, сделанные с помощью gatsby-source-prismic-graphql , добавляют поле 'prismic' в начале запросов. например.

{
  prismic {
    allHomepages {
      edges {
        node {
          title
          description
        }
      }
    }
  }
} 

В то время как с gatsby-source-prismic это поле недоступно. Это только первый подход, сделать простой запрос. Я не знаю, если более сложные, те, которые углубляются в документы (для вызова слайсов или полей ссылок), похожи или даже более различны для друг друга. Так что это будет мое первое предположение.

0 голосов
/ 09 октября 2019

Вот более сложная версия запроса. Я добавил имя запроса и два фрагмента:

query MyHomeQuery {
  prismic {
    allHomepages {
      edges {
        node {
         title
         description
          body {
            ... on PRISMIC_HomeBodyText {
              type
              label
            }
            ... on PRISMIC_HomeBodyImage_with_caption {
              type
              label
            }
          }
        }
      }
    }
  }
}

И вы правы. Имя в gatsby-source-prismic будет allPrismicHomePage

...