访问项目 Items

REST 和 GraphQL API 文档,用于访问和管理 Directus 中的项目。项目是数据库中的单独数据片段。 它们可以是任何东西,从文章到 IoT 状态检查。

项目对象

项目没有预定义的架构。 格式完全取决于您在 Directus 中配置集合和字段的方式。 出于文档的考虑,我们将使用具有以下字段的虚构文章集合:idstatustitlebodyfeatured_imageauthor

关系数据
请参阅 关系数据字段参数 了解更多信息。

json
{
  "id": 1,
  "status": "published",
  "title": "Hello, world!",
  "body": "This is my first article",
  "featured_image": "768eabec-3c54-4110-a6bb-64b548116661",
  "author": "0bc7b36a-9ba9-4ce0-83f0-0a526f354e07"
}

获取项目

列出 Directus 中存在的所有项目。

查询参数

支持所有全局查询参数

关系数据
字段参数 是返回嵌套关系数据所必需的。

返回值

最多包含 limit item objects 的数组。 如果没有可用的项目,数据将 是一个空数组。

单项的

如果您的集合是单项的,则此端点将返回该项目。 如果数据库中不存在该项目,则将返回默认值。

REST API

GET /items/:collection
SEARCH /items/:collection

了解有关 搜索 的更多信息 ->

示例
GET /items/articles

GraphQL

POST /graphql
graphql
type Query {
 <collection>: [<collection>]
}
示例
graphql
query {
 articles {
  id
  title
  author {
   first_name
  }
 }
}

通过 ID 获取项目

获取 Directus 中存在的项目。

查询参数

支持所有全局查询参数

返回值

如果提供了有效的主键,则返回 item object

REST API

GET /items/:collection/:id
示例
GET /items/articles/15

GraphQL

POST /graphql
graphql
type Query {
 <collection>_by_id(id: ID!): <collection>
}
示例
graphql
query {
 articles_by_id(id: 15) {
  id
  title
 }
}

创建一个项目

在给定的集合中创建一个新项目。

查询参数

支持所有全局查询参数

请求正文

部分项目对象的数组.

关系数据
关系数据需要正确嵌套才能成功添加新项目。 查看 关系数据部分 了解更多信息。

返回值

返回已创建项目的 项目对象

REST API

POST /items/:collection
示例
POST /items/articles
json
{
  "title": "Hello world!",
  "body": "This is our first article"
}

GraphQL

POST /graphql
graphql
type Mutation {
 create_<collection>_item(data: create_<collection>_input): <collection>
}
示例
graphql
mutation {
 create_articles_item(data: { title: "Hello world!", body: "This is our first article" }) {
  id
  title
 }
}

创建多个项目

在给定的集合中创建新项目。

查询参数

支持所有全局查询参数

请求正文

部分项目对象的数组.

返回值

返回已创建项目的 项目对象

REST API

POST /items/:collection
示例
POST /items/articles
json
[
  {
    "title": "Hello world!",
    "body": "This is our first article"
  },
  {
    "title": "Hello again, world!",
    "body": "This is our second article"
  }
]

GraphQL

POST /graphql
graphql
type Mutation {
 create_<collection>_items(data: [create_<collection>_input]): [<collection>]
}
示例
graphql
mutation {
 create_articles_items(
  data: [
   { title: "Hello world!", body: "This is our first article" }
   { title: "Hello again, world!", body: "This is our second article" }
  ]
 ) {
  id
  title
 }
}

更新项目

更新现有项目。

查询参数

支持所有全局查询参数

请求正文

部分项目对象.

返回值

返回已更新项目的项目对象

REST API

PATCH /items/:collection/:id
示例
PATCH /items/articles/15
json
{
  "title": "An updated title"
}

GraphQL

POST /graphql
graphql
type Mutation {
 update_<collection>_item(id: ID!, data: update_<collection>_input!): <collection>
}
示例
graphql
mutation {
 update_articles_item(id: 15, data: { title: "An updated title" }) {
  id
  title
 }
}

更新多个项目

同时更新多个项目。

查询参数

支持所有全局查询参数

请求正文

包含用于设置值的data的对象,以及用于选择要更新的项目的keyquery

返回值

返回更新项目的项目对象

单项的

如果您的集合是单例,则此端点的行为与 更新项目 端点相同。

REST API

PATCH /items/:collection
示例
PATCH /items/articles
json
{
  "keys": [1, 2],
  "data": {
    "status": "published"
  }
}

GraphQL

POST /graphql
graphql
type Mutation {
 update_<collection>_items(ids: [ID!]!, data: [update_<collection>_input]): [<collection>]
}
示例
graphql
mutation {
 update_articles_items(ids: [1, 2], data: { status: "published" }) {
  id
  status
 }
}

删除项目

删除现有项目。

返回值

Empty body.

REST API

DELETE /items/:collection/:id
示例
DELETE /items/articles/15

GraphQL

POST /graphql
graphql
type Mutation {
 delete_<collection>_item(id: ID!): delete_one
}
示例
graphql
mutation {
 delete_articles_item(id: 15) {
  id
 }
}

删除多个项目

删除多个现有项目。

请求正文

项目主键数组。

返回值

Empty body.

REST API

DELETE /items/:collection
示例
DELETE /items/articles
json
[15, 16, 21]

GraphQL

POST /graphql
graphql
type Mutation {
 delete_<collection>_items(ids: [ID!]!): delete_many
}
示例
graphql
mutation {
 delete_articles_items(ids: [15, 16, 21]) {
  ids
 }
}