你别害怕,我会一向为你留盏回家的灯,就像歌词里说的那句“管他沧海桑田你仍是四月人间”

前文我们了过strapi的安装和内容模型建立,若以不记可阅《StrApi 无头Cms 快速开发API接口,无需CRUD,JWT》
这次我们来看看StrApi 快速上手API请求内容,filters过滤,pagination分页内容
上次文章中我们建立了2个内容模型分别是:frarticle(文章),frcategorize(分类)

访问
访问strapi的api我们只需要在固定的路径下添加我们的端点
http://localhost:1337/api/端点
那如何才能知道我们的内容模型的端点呢?
安图依次找到内容,API ID (Plural)就是我们的端点

例如我们现在访问frarticle(文章)接口数据我们只需要访问即可得到Json格式数据
http://localhost:1337/api/frarticl

接口参数
API 参数可与 REST API 一起使用,以筛选、排序和分页结果,以及选择要填充的字段和关系。此外,还可以使用与可选 Strapi 功能相关的特定参数,例如内容类型的发布状态和区域设置
| 接口 | 类型 | 描述 |
|---|---|---|
sort | 字符串或数组 | 对响应进行排序 |
filters | 对象 | 筛选响应 |
populate | 字符串或对象 | 填充关系、组件或动态区域 |
fields | 数组 | 仅选择要显示的特定字段 |
pagination | 对象 | 翻页浏览条目 |
publicationState | 字符串 | 选择“草稿和发布”状态“仅 接受以下值: livepreview |
locale | 字符串或数组 | 选择一个或多个区域设置 |
filters过滤
filters他会有3个参数
filters[需要过滤的参数][参数条件]=需要得到的参数值
例如我们需要访问文章接口中sate字段值为false的数据,只需要访问
http://localhost:1337/api/frarticle?filters[state][$eq]=false
参数条件有以下几种类型
| 类型 | 描述 |
|---|---|
$eq | 平等 |
$eqi | 相等(不区分大小写) |
$ne | 不等于 |
$lt | 小于 |
$lte | 小于或等于 |
$gt | 大于 |
$gte | 大于或等于 |
$in | 包含在数组中 |
$notIn | 不包含在数组中 |
$contains | 包含 |
$notContains | 不包含 |
$containsi | 包含(不区分大小写) |
$notContainsi | 不包含(不区分大小写) |
$null | 为空 |
$notNull | 不为空 |
$between | 介于 |
$startsWith | 开头为 |
$endsWith | 结尾为 |
$or | 在“或”表达式中联接筛选器 |
$and | 在“and”表达式中联接筛选器 |
默认分页
在我们请求数据之后会看到末尾会有mate内容

"meta": {
"pagination": {
"page": 2,//页码
"pageSize": 25,//默认条数
"pageCount": 1,//是否显示总条数
"total": 11//文章总数
}
}
pagination会有以下几个参数
参数 类型 描述 默认值
pagination[page] 整数 页码 1
pagination[pageSize] 整数 页面大小 25
pagination[withCount] 布尔 将条目总数和页数添加到响应中 true
官方默认分页过来一页是25条数据,若我们不需要改变只需要在后面添加pagination[page]=1即可
http://localhost:1337/api/frarticle?pagination[page]=1
自定义分页
日常习惯我们一页是10条数据,要自定义我们需要添加3个参数
| 参数 | 类型 | 描述 | 默认值 |
|---|---|---|---|
pagination[start] | 整数 | 起始值(即返回的第一个条目) | 0 |
pagination[limit] | 整数 | 要返回的条目数 | 25 |
pagination[withCount] | 布尔 | 显示响应条目总数的切换开关 | true |
我们的请求应该如下
http://localhost:1337/api/frarticle?pagination[page]=1&pagination[limit]=10&pagination[start]=0
实际项目中我们一页10条数据,随page的参数增加,start值应该为page*10
sort排序
排序它会有2个参数,参数必须提供一个值
| 参数 | 描述 |
|---|---|
:asc | 升序(默认) |
:desc | 降序(需携带值) |
我们对文章ID降序应该请求
http://localhost:1337/api/frcategorize?sort=id:desc
总结
做一个CMS展示数据来说API的内容不多
多重复杂过滤,深度过滤江湖有缘再见