Как загрузить вложенные данные с помощью 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'
}
}
}