Возможность получения нескольких метаполей через GraphQL в Shopify

Я создал несколько метаполей для сообщений в блоге и заполнил их. Я создаю витрину магазина Hydrogen Shopify и использую GraphQL для получения данных из этого блога/статьи. Но я не могу понять, как получить все метаполя. Похоже, что «метаполе» и «метаполя» возвращают только одно поле на основе ключа и пространства имен. Есть ли способ сделать больше одного?

query Blog($language: LanguageCode, $blogHandle: String!, $first: Int, $last: Int, $startCursor: String, $endCursor: String) @inContext(language: $language) {
  blog(handle: $blogHandle) {
    title
    seo {
      title
      description
    }
    articles(
      first: $first
      last: $last
      before: $startCursor
      after: $endCursor
      reverse: true
    ) {
      nodes {
        ...ArticleItem
        metafields(identifiers: {namespace: "custom", key: "misc_content_long_text_1"}) {
          value
          references {
            edges {
              node
            }
          }
        }
      }
      pageInfo {
        hasPreviousPage
        hasNextPage
        hasNextPage
        endCursor
        startCursor
      }
    }
  }
}

fragment ArticleItem on Article {
  author: authorV2 {
    name
  }
  contentHtml
  handle
  id
  image {
    id
    altText
    url
    width
    height
  }
  publishedAt
  title
  blog {
    handle
  }
}

Мои метаполя включают в себя:

  • misc_content_long_text_1
  • misc_content_long_text_2
  • misc_content_long_text_3
  • misc_text_field_1
  • misc_text_field_2
  • misc_text_field_3
  • misc_text_field_4
  • misc_text_field_5

Я надеюсь, что мне не придется вызывать несколько запросов для их получения. ТИА

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
0
0
188
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете добиться этого, используя псевдонимы метаполей. Вот официальные документы https://www.shopify.com/in/partners/blog/how-to-use-graphql-aliases

query Blog($language: LanguageCode, $blogHandle: String!, $first: Int, $last: Int, $startCursor: String, $endCursor: String) @inContext(language: $language) {
  blog(handle: $blogHandle) {
    title
    seo {
      title
      description
    }
    articles(
      first: $first
      last: $last
      before: $startCursor
      after: $endCursor
      reverse: true
    ) {
      nodes {
        ...ArticleItem
        misc_content_long_text_1 : metafields(identifiers: {namespace: "custom", key: "misc_content_long_text_1"}) {
          value
          references {
            edges {
              node
            }
          }
        },
misc_text_field_2: metafields(identifiers: {namespace: "custom", key: "misc_text_field_2"}) {
          value
          references {
            edges {
              node
            }
          }
        }
      }
      pageInfo {
        hasPreviousPage
        hasNextPage
        hasNextPage
        endCursor
        startCursor
      }
    }
  }
}

fragment ArticleItem on Article {
  author: authorV2 {
    name
  }
  contentHtml
  handle
  id
  image {
    id
    altText
    url
    width
    height
  }
  publishedAt
  title
  blog {
    handle
  }
}

Другие вопросы по теме