示例说明
在示例数据「样本数据2 - 商品列表」里一共有 25 条记录,如果想要按字段 “促销价” 的金额由低到高排序,然后再按照商品的 “分类”进行降序,应该怎么办呢?
方法一:参照示例1,新建视图并设置视图的排序,然后调用 API 时带上新视图的 viewId 。
方法二:使用 sort
参数,可以达到相同的效果,并且可以覆盖原有视图的排序规则。下文将围绕此方法展开说明。
样本数据
API 文档里所使用的样本数据,皆可通过此分享链接获得:《API 教程样本数据》,建议另存到自己的空间站,然后跟着例子一步一步学习,事半功倍哦!
本示例将使用分享链接里的「样本数据2 - 商品列表」展开讲解。
操作步骤
步骤一:将样本数据另存到自己的空间站里,然后访问「样本数据2 - 商品列表」。
步骤二:打开 “API 示例面板” ,查找“促销价”,“分类” 这两个字段的 Field ID 。( 此步骤可跳过,如果参数 fieldKey=name
则无需使用 Field ID )
步骤三:
调用API「获取记录」,使用请求参数 sort
并带上 {"field": "促销价", "order": "asc"}&sort={"field": "分类", "order": "desc"}
。
请注意! sort
参数需要配合 fieldKey
参数一同使用才能生效!根据 fieldKey
的值不同,调用 API 「获取记录」可分为下列两种方式:
① 当
fieldKey=id
时, 请求参数sort
的值必须使用字段的ID(例如:fldFAgaNzBxXW
,fld1K524XGsxE
,fld1K524XGsxE
)。 此方法的优点是:由于字段 ID 固定且唯一的,所以在维格视图下修改列(字段)名称不会影响到 API 调用。
② 当
fieldKey=name
时, 请求参数sort
的值必须使用字段的名称(例如:“促销价”,“分类”)。如果开发者调用 API 时不显式指定fieldKey
参数,则默认使用 “name” 作为缺省值。 此方法更简单直观,更语义化,但代码容易受影响,当字段名称(列名)发生变化后,都需要修改代码。
步骤四:维格表服务端接收到请求后,返回的记录数据将会先按照 “促销价” 由低到高排序,再按 “分类” 由 Z 到 A 排序。
API调用
参数:sort
参数类型:字符串数组(Array Of Objects)
选填:对指定维格表的记录进行排序,由多个 “排序对象” 组成的数组。
一个 Sort Object 的结构为{field: 'fieldname', order: 'asc/desc'}
。
注 ①:此参数指定的排序条件将会覆盖视图里的排序条件。
兼容如下两种格式规范(为了易读性,下方格式使用字段名称,即 fieldKey="name"
展开说明):
格式1:
sort[0].field=促销价&sort[0].order=asc&sort[1].field=分类&sort[1].order=desc
格式2:
sort={"field": "促销价", "order": "asc"}&sort={"field": "分类", "order": "desc"}
① cURL 示意:
请注意:下方代码为了直观显示参数的结构,没有转义编码。正式调用时,请使用 encodeURIComponent() 函数对 URL 参数进行转义编码。
// 编码前
curl 'https://api.vika.cn/fusion/v1/datasheets/dstdQxaqwGaoBbB8bK/records?sort[0].field=促销价&sort[0].order=asc&sort[1].field=分类&sort[1].order=desc' \
-H 'Authorization: Bearer {_替换成你的API_Token_}'
// 编码后
curl 'https://api.vika.cn/fusion/v1/datasheets/dstdQxaqwGaoBbB8bK/records?sort%5B0%5D.field%3D%E4%BF%83%E9%94%80%E4%BB%B7%26sort%5B0%5D.order%3Dasc%26sort%5B1%5D.field%3D%E5%88%86%E7%B1%BB%26sort%5B1%5D.order%3Ddesc' \
-H 'Authorization: Bearer {_替换成你的API_Token_}'
② 调试工具示意:
返回:
正常情况下,维格表服务端会返回下述 JSON 数据包
{
"code": 200,
"success": true,
"data": {
"total": 25,
"pageNum": 1,
"pageSize": 25,
"records": [
{
"recordId": "rec5IPHXNhZfS",
"createdAt": 1610103747000,
"updatedAt": 1610103747000,
"fields": {
"摘要": "55度恒温,微重力感应,快速加热,小巧轻便",
"分类": "厨电新品",
"原价": 39,
"促销价": 39,
"入库时间": 1610103747460,
"标题": "恒温杯垫",
"配图": [
{
"id": "atcv4LfjBDKgy",
"name": "ffc488e338c8e6a70c958a5b5b001a84.png?w=800&h=800",
"size": 70208,
"mimeType": "image/png",
"token": "space/2020/05/26/1265118444998811650",
"width": 800,
"height": 800,
"url": "https://s1.vika.cn/space/2020/05/26/1265118444998811650"
}
]
}
},
{
"recordId": "recPtdNapDGAW",
"createdAt": 1610103747000,
"updatedAt": 1610103747000,
"fields": {
"摘要": "55度恒温,微重力感应,快速加热,小巧轻便",
"分类": "本周新品",
"原价": 39,
"促销价": 39,
"入库时间": 1610103747460,
"标题": "恒温杯垫",
"配图": [
{
"id": "atcjtteKaeTfr",
"name": "ffc488e338c8e6a70c958a5b5b001a84.png?w=800&h=800",
"size": 70208,
"mimeType": "image/png",
"token": "space/2020/05/26/1265118444998811650",
"width": 800,
"height": 800,
"url": "https://s1.vika.cn/space/2020/05/26/1265118444998811650"
}
]
}
},
{
"recordId": "recIwldW7BXea",
"createdAt": 1610103747000,
"updatedAt": 1610103747000,
"fields": {
"摘要": "Pinlo搅拌料理机、米家料理机,均可兼容适配使用",
"分类": "料理机",
"原价": 59,
"促销价": 54,
"入库时间": 1610103747460,
"标题": "研磨杯搅拌料理机打粉杯 兼容米家料理机",
"配图": [
{
"id": "atcGmSULKTj83",
"name": "f3f3ca2d488ad04494ab56f3ffcbc8a7.png?w=800&h=800",
"size": 211227,
"mimeType": "image/png",
"token": "space/2020/05/26/1265120108953899009",
"width": 800,
"height": 800,
"url": "https://s1.vika.cn/space/2020/05/26/1265120108953899009"
}
],
"主要卖点": [
"不锈钢材质",
"按压式",
"干磨"
]
}
}
//...more
]
},
"message": "SUCCESS"
}