Как загрузить вложенные данные с помощью Graphql из storyblok?

Я пытаюсь получить с помощью одного запроса graphql всю необходимую информацию для сообщения в блоге. Я использую gridsome и рассказ. Для этого я использую этот плагин.

Первый запрос загружает с идентификатором все из определенного сообщения в блоге, но не загружает вложенные данные, такие как категории или авторы.

Например:

<page-query>
    query StoryblokEntry ($id: ID) {
        storyblokEntry (id: $id) {
            id
            slug
            content
        }
    }
</page-query>

Когда я тестирую запрос с идентификатором «story-3850216-default», я получаю следующий результат:

{
  "data": {
    "storyblokEntry": {
      "id": "story-3850216-default",
      "slug": "hello-world",
      "content": {
        "_uid": "f5a0bd9d-ec13-4381-ae5f-a7e2bb093fbe",
        "title": "Hello World ????",
        "authors": [
          "61dec800-1b17-443e-961a-1cf8ef08d803"
        ],
        "content": "hi",
        "component": "article-post",
        "categories": [
          "e1509e6e-2007-4d4b-8857-4bc1105c5505"
        ],
      }
    }
  }
}

Что сделать, чтобы значения авторов и категорий жадно подгружались?

Мой фон исходит от обычных REST-API, и теперь я немного ошеломлен.


person Philipp Mochine    schedule 13.11.2019    source источник


Ответы (1)


Поскольку у Storyblok есть компоненты как первоклассные граждане, разрешение атрибута может быть выполнено с помощью функции API resolve_relations. Это позволяет также разрешать атрибуты в глубоко вложенных компонентах, просто указав имя компонента и атрибут (YOUR_COMPONENT.YOUR_ATTRIBUTE).

{
  use: 'gridsome-source-storyblok',
  options: {
    ...
    params: {
      resolve_relations: 'article-post.authors,article-post.categories'
    }
  }
}
person Alexander Feiglstorfer    schedule 14.11.2019
comment
Это было полезно. Один побочный вопрос. Как можно уменьшить результат? В настоящее время это приводит ко многим данным, которые мне не нужно знать, например uuid, parent_id и т. д. На самом деле меня интересует только содержание авторов. - person Philipp Mochine; 14.11.2019
comment
другая проблема, которая возникает, заключается в том, что когда вы используете визуальный редактор, вложенные данные не загружаются! Один из способов — просто добавить resolve_relations в метод window.storyblok.get редактора. но это кажется супер неряшливым. - person Philipp Mochine; 15.11.2019