Призматический график запросов одного пользователя

Я пытаюсь выяснить, как запросить одного пользователя из схемы graphql по идентификатору. Я использую инструмент graphiql и смогу получить всех пользователей.

{
    allPrismicUsers {
      edges {
        node {
          id
        data {
          name
        }
        }
      }
    }
}

Выходы:

{
  "data": {
    "allPrismicUsers”: {
      "edges": [
        {
          "node": {
            "id": "Prismic__User__WzKFwywAABmiZk_4",
            "data": {
              "name": “John Doe”
            }
          }
        },
        {
          "node": {
            "id": "Prismic__User__WzKDZywAABmiZkYp",
            "data": {
              "name": “Jane Doe“
            }
          }
        },
        {
          "node": {
            "id": "Prismic__User__WzKGDiwAAJSiZlFL",
            "data": {
              "name": “Cat Doe”
            }
          }
        }
      ]
    }
  }
}

У меня также есть prismicUser() на схеме

query {
  prismicUser {
    id
    data {
      name
    }
  }
}

Выход:

{
  "data": {
    "prismicUser": {
      "id": "Prismic__User__WzKGDiwAAJSiZlFL",
      "data": {
        "name": "Cat Doe"
      }
    }
  }
}

Я пытаюсь запросить пользователя на основе определенного идентификатора, но не уверен, что я запрашиваю неправильный путь. Я попробовал это.

query {
  prismicLocation(id: "Prismic__User__WzKDZywAABmiZkYp") {
    data {
      name
    }
  }
}

Я получаю ошибку

{ "errors": [ { "message": "Аргумент \" id \ "имеет недопустимое значение \"Prismic__User__WzKDZywAABmiZkYp\".\nExpected \"prismicUserIdQueryString_2\", не найден объект.", "users": [ { "строка ": 25, " колонка ": 23 } ] } ] }

Как я могу позвонить конкретному пользователю по его идентификатору?

1 ответ

Решение

Согласно справке Gatsby GraphQL, Gatsby позволяет фильтровать результаты по любому полю в GraphQL (используя такие операторы, как eq, ne, так далее.)

gatsby-source-prismic Плагин предоставляет поле под названием prismicId (т.е. W1syKSIAAAzdN1Jg).

Вот пример запроса:

{
  prismicUser(prismicId:{eq:"WzKDZywAABmiZkYp"}) {
    data {
      name
    }
  }
}

Но вы также можете запросить по id:

prismicUser(id:{eq:"Prismic__User__WzKDZywAABmiZkYp"})
Другие вопросы по тегам