示例说明

在示例数据「样本数据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 , fld1K524XGsxEfld1K524XGsxE)。 此方法的优点是:由于字段 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_}'


② 调试工具示意:

sort_格式1

sort_格式2


返回:

正常情况下,维格表服务端会返回下述 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"
}

results matching ""

    No results matching ""