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

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

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

Например:

<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, и теперь я немного перегружен.

1 ответ

Решение

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

{
  use: 'gridsome-source-storyblok',
  options: {
    ...
    params: {
      resolve_relations: 'article-post.authors,article-post.categories'
    }
  }
}
Другие вопросы по тегам