REST API 允许通过 API 端点访问 内容类型。创建内容类型时,Strapi 会自动创建 API 端点。查询 API 端点时可以使用 API 参数 来优化结果。
默认情况下,所有内容类型都是私有的,需要公开,或者查询需要使用适当的权限进行身份验证。有关更多详细信息,请参阅 快速入门指南、用户和权限插件 用户指南和 API 令牌配置文档。
默认情况下,REST API 响应仅包含顶级字段,不会填充任何关系、媒体字段、组件或动态区域。使用 populate
参数 填充特定字段。确保已为您填充的关系的字段授予查找权限。
端点
对于每个内容类型,会自动生成以下端点:
集合类型
方法 | 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 | 更新餐厅 |
单一类型
示例:
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
值以清除字段。
- 即使安装了 国际化 (i18n) 插件,目前也无法 更新条目的语言环境。
- 更新条目时,您可以定义其关系及其顺序(有关更多详细信息,请参阅 通过 REST API 管理关系)。
请求方法
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": {}
}