如何使用Storyblok中的Graphql加载嵌套数据?

时间:2019-11-13 17:23:07

标签: graphql gridsome headless-cms storyblok

我正在尝试使用一个graphql查询来获取博客文章的所有必需信息。我正在使用gridsomestoryblok。为此,我正在使用此plugin

第一个查询使用ID加载特定博客文章中的所有内容,但不加载类别或作者等嵌套数据。

例如:

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

当我测试ID为“ 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 个答案:

答案 0 :(得分:1)

由于Storyblok具有组件,因此头等公民可以通过resolve_relations api函数来解析属性。这样,您还可以通过提供组件名称和属性(YOUR_COMPONENT.YOUR_ATTRIBUTE)来解析深度嵌套的组件中的属性。

{
  use: 'gridsome-source-storyblok',
  options: {
    ...
    params: {
      resolve_relations: 'article-post.authors,article-post.categories'
    }
  }
}