内容丰富的GraphQL端点:如何检索内容类型的所有条目 查询单个id 查询所有Posts

问题描述

{
  Post {
      name
  }
}

在尝试检索内容类型上的所有条目时,仅给出以下错误

"Argument \"id\" of required type \"String!\" was not provided."

因为id字段是必填字段。那么如何获取内容类型的所有条目?

参考:https://www.contentful.com/developers/docs/references/graphql/

解决方法

来自文档here

产生的Query对象公开了两个字段,您可以用来查询该类型的内容:一个字段用于获取单个内容文档(在示例中为friendlyUser),另一个字段可以查询所有类型的内容( friendlyUserCollection

因此,对于要检索其所有条目的任何资源,需要在其ID的末尾附加Collection,然后使用items字段检索所有条目。如:

{
  PostCollection {
      items {
          name
      }
  }
}

除了文档,您还可以在相应的GraphiQL实例上查看所有可用资源,这可能非常有用:

https://graphql.contentful.com/content/v1/spaces/{SPACE_ID}/explore?access_token={ACCESS_TOKEN}

搜索或选择Query以查看所有架构:

GraphiQL

,

查询单个id

我认为您可以在GraphQL游戏机中尝试 http://localhost:8000/___graphql

query PostById($id: String!) {
  contentfulPost(id: { eq: $id }) {
    name
  }
}

并添加一个查询变量

{
  "id": "my-awesome-id"
}

查询所有Posts

然后如何获取内容类型的所有条目?

在GraphQL游乐场上,您应该能够执行类似的操作

{
  allContentfulPost {
    nodes {
      name
    }
  }
}