评论
StrApi 快速上手API请求内容,filters过滤,pagination分页, sort排序

StrApi 快速上手API请求内容,filters过滤,pagination分页, sort排序

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

StrApi 快速上手API请求内容,filters过滤,pagination分页, sort排序

前文我们了过strapi的安装和内容模型建立,若以不记可阅《StrApi 无头Cms 快速开发API接口,无需CRUD,JWT

这次我们来看看StrApi 快速上手API请求内容,filters过滤,pagination分页内容

上次文章中我们建立了2个内容模型分别是:frarticle(文章),frcategorize(分类)

StrApi 快速上手API请求内容,filters过滤,pagination分页, sort排序

访问

访问strapi的api我们只需要在固定的路径下添加我们的端点

http://localhost:1337/api/端点

那如何才能知道我们的内容模型的端点呢?

安图依次找到内容,API ID (Plural)就是我们的端点

StrApi 快速上手API请求内容,filters过滤,pagination分页, sort排序

例如我们现在访问frarticle(文章)接口数据我们只需要访问即可得到Json格式数据

http://localhost:1337/api/frarticl
StrApi 快速上手API请求内容,filters过滤,pagination分页, sort排序

接口参数

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内容

StrApi 快速上手API请求内容,filters过滤,pagination分页, sort排序

"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的内容不多

多重复杂过滤,深度过滤江湖有缘再见