端点和请求 Endpoints Requests

使用 Strapi 为您生成的 REST API 端点与您的 Content-Type 进行交互。

REST API 允许通过 API 端点访问 内容类型。创建内容类型时,Strapi 会自动创建 API 端点。查询 API 端点时可以使用 API 参数 来优化结果。

默认情况下,所有内容类型都是私有的,需要公开,或者查询需要使用适当的权限进行身份验证。有关更多详细信息,请参阅 快速入门指南用户和权限插件 用户指南和 API 令牌配置文档

默认情况下,REST API 响应仅包含顶级字段,不会填充任何关系、媒体字段、组件或动态区域。使用 populate 参数 填充特定字段。确保已为您填充的关系的字段授予查找权限。

上传插件 API

上传插件(处理在 媒体库 中找到的媒体)具有在 上传插件文档 中描述的特定 API。

端点

对于每个内容类型,会自动生成以下端点:

集合类型

方法URL说明
GET/api/:pluralApiId获取条目列表
POST/api/:pluralApiId创建条目
GET/api/:pluralApiId/:documentId获取条目
PUT/api/:pluralApiId/:documentId更新条目
DELETE/api/:pluralApiId/:documentId删除条目

示例

Restaurant 内容类型

方法URL说明
GET/api/restaurants获取餐厅列表
POST/api/restaurants创建餐厅
GET/api/restaurants/:id获取特定餐厅
DELETE/api/restaurants/:id删除餐厅
PUT/api/restaurants/:id更新餐厅

单一类型

方法URL说明
GET/api/:singularApiId获取条目
PUT/api/:singularApiId更新/创建条目
DELETE/api/:singularApiId删除条目

示例:

Homepage 内容类型

方法URL说明
GET/api/homepage获取主页内容
PUT/api/homepage更新/创建主页内容
DELETE/api/homepage删除主页内容

组件 没有 API 端点。

API 端点默认以 /api 为前缀。可以通过为 rest.prefix 配置参数设置不同的值来更改此设置(请参阅 API 调用配置)。

请求 Requests

请求以对象形式返回响应,该对象通常包含以下键:

  • data:响应数据本身,可以是:
  • 单个条目,作为具有以下键的对象:
  • id(数字)
  • attributes(对象)
  • meta(对象)
  • 条目列表,作为对象数组
  • 自定义响应
  • meta(对象):有关分页、发布状态、可用语言环境等的信息。
  • error(对象,可选):有关请求引发的任何 错误 的信息

某些插件(包括用户和权限和上传)可能不遵循此响应格式。

获取条目列表

返回与查询过滤器匹配的条目(参见 API 参数 文档)。

请求方法
bash
GET http://localhost:1337/api/restaurants
响应示例
json
{
  "data": [
    {
      "id": 1,
      "attributes": {
        "title": "Restaurant A",
        "description": "Restaurant A's description"
      },
      "meta": {
        "availableLocales": []
      }
    },
    {
      "id": 2,
      "attributes": {
        "title": "Restaurant B",
        "description": "Restaurant B's description"
      },
      "meta": {
        "availableLocales": []
      }
    }
  ],
  "meta": {}
}

获取条目

通过id返回条目。

请求方法
bash
GET http://localhost:1337/api/restaurants/1
响应示例
json
{
  "data": {
    "id": 1,
    "attributes": {
      "title": "Restaurant A",
      "description": "Restaurant A's description"
    },
    "meta": {
      "availableLocales": []
    }
  },
  "meta": {}
}

创建条目

创建条目并返回其值。

如果安装了 国际化 (i18n) 插件,则可以使用 POST 请求 REST API 来 创建本地化条目

创建条目时,您可以定义其关系及其顺序(有关更多详细信息,请参阅 通过 REST API 管理关系)。

请求方法
bash
POST http://localhost:1337/api/restaurants
请求内容
json
{
  "data": {
    "title": "Hello",
    "relation_field_a": 2,
    "relation_field_b": [2, 4],
    "link": {
      "id": 1,
      "type": "abc"
    }
  }
}
响应示例
json
{
  "data": {
    "id": 1,
    "attributes": { },
    "meta": {}
  },
  "meta": {}
}

更新条目

通过 id 部分更新条目并返回其值。

查询中未发送的字段不会在数据库中更改。发送 null 值以清除字段。

请求方法
bash
PUT http://localhost:1337/api/restaurants/1
请求内容
json
{
  "data": {
    "title": "Hello",
    "relation_field_a": 2,
    "relation_field_b": [2, 4]
  }
}
响应示例
json
{
  "data": {
    "id": 1,
    "attributes": {},
    "meta": {}
  },
  "meta": {}
}

删除一个条目

通过id删除条目并返回其值。

请求方法
bash
DELETE http://localhost:1337/api/restaurants/1
响应示例
json
{
  "data": {
    "id": 1,
    "attributes": {},
    "meta": {}
  },
  "meta": {}
}