示例说明

示例1 中,我们通过 API 获取到了 “本周新品” 视图下的所有商品数据。

通过视图 ID 来筛选数据是最便捷的方式,但也存在短板,就是每一个不同筛选条件都要重新创建视图。如果有十个商品分类,难道要创建十个视图,再调 API 吗?有没有一种可以灵活地、随时修改筛选条件的办法呢?

示例5-图1

参数 filterByFormula 可以满足此类需求。智能公式包含多种函数,满足不同场景下的计算,开发者编写 “智能公式” 从而实现复杂的记录筛选。




样本数据

API 文档里所使用的样本数据,皆可通过此分享链接获得:《API 教程样本数据》,建议另存到自己的空间站,然后跟着例子一步一步学习,事半功倍哦!

本示例将使用分享链接里的「样本数据2 - 商品列表」展开讲解。

教程示例数据




操作步骤

例如:我们想要筛选出「卖点」包含“真空”或“保温”这两个关键词的所有商品,并且按照促销价由低到高排序。


步骤一:将样本数据另存到自己的空间站里,然后访问《样本数据2 - 商品列表》。


步骤二:调用 API 「获取记录」,添加请求参数 filterByFormula ,值为 OR(find("自动", {主要卖点}) > 0, find("保温", {主要卖点}) > 0),添加请求参数 sort, 值为 {"field": "促销价", "order": "desc"}


步骤四:维格表服务端接收到请求后,将会返回符合过滤条件——「卖点」包含“真空”或“保温”这两个关键词的记录数据,并且按照“促销价”由低到高排序。




API调用


参数:filterByFormula

参数类型:字符串(String)

使用公式作为筛选条件,返回匹配的记录,访问《一分钟上手公式》了解公式使用方式

参数格式:

// 筛选出「卖点」包含“真空”或“保温”这两个关键词
filterByFormula=OR(find("自动", {主要卖点}) > 0, find("保温", {主要卖点}) > 0)

// 按照促销价由低到高排序
sort={"field": "促销价", "order": "desc"}


① cURL 示意:

注意:下方代码为了直观显示参数的结构,没有转义编码。正式调用时,请使用 encodeURIComponent() 函数对 URL 参数进行转义编码。


// 编码前
curl 'https://api.vika.cn/fusion/v1/datasheets/dstdQxaqwGaoBbB8bK/records?filterByFormula=OR(find("自动", {主要卖点}) > 0, find("保温", {主要卖点}) > 0)&sort={"field": "促销价", "order": "desc"}' \
  -H 'Authorization: Bearer {_替换成你的API_Token_}'

// 编码后
curl 'https://api.vika.cn/fusion/v1/datasheets/dstdQxaqwGaoBbB8bK/records?filterByFormula=OR%28find%28%22%E8%87%AA%E5%8A%A8%22,%20{%E4%B8%BB%E8%A6%81%E5%8D%96%E7%82%B9}%29%20%3E%200,%20find%28%22%E4%BF%9D%E6%B8%A9%22,%20{%E4%B8%BB%E8%A6%81%E5%8D%96%E7%82%B9}%29%20%3E%200%29&sort={%22field%22:%20%22%E4%BF%83%E9%94%80%E4%BB%B7%22,%20%22order%22:%20%22desc%22}' \
  -H 'Authorization: Bearer {_替换成你的API_Token_}'


② 调试工具示意:

示例5-图2


返回:

正常情况下,维格表服务端会返回下述 JSON 数据包

{
    "code": 200,
    "success": true,
    "data": {
        "total": 7,
        "pageNum": 1,
        "pageSize": 7,
        "records": [
            {
                "recordId": "recdj7n9GOa3v",
                "createdAt": 1610103747000,
                "updatedAt": 1610103747000,
                "fields": {
                    "摘要": "一机多用,轻量杯体设计,一键自动清洗",
                    "分类": "料理机",
                    "原价": 399,
                    "促销价": 399,
                    "入库时间": 1610103747460,
                    "标题": "破壁料理机(小Q)",
                    "配图": [
                        {
                            "id": "atc7DyNEiflb9",
                            "name": "7a0418657b66834a9a8a2563ab10a061.png?w=800&h=800",
                            "size": 203359,
                            "mimeType": "image/png",
                            "token": "space/2020/05/26/1265120088364867586",
                            "width": 800,
                            "height": 800,
                            "url": "https://s1.vika.cn/space/2020/05/26/1265120088364867586"
                        }
                    ],
                    "主要卖点": [
                        "保温",
                        "触摸式"
                    ]
                }
            },
            {
                "recordId": "recX1UxK12bIo",
                "createdAt": 1610103747000,
                "updatedAt": 1610103747000,
                "fields": {
                    "摘要": "八大功能,冷热双享,一键触控,多挡调温",
                    "分类": "养生壶",
                    "原价": 399,
                    "促销价": 369,
                    "入库时间": 1610103747460,
                    "标题": "生活多功能冷热杯",
                    "配图": [
                        {
                            "id": "atcoV3vrQLmFN",
                            "name": "a3e97801d767a5c272b31f897eb62a2e.png",
                            "size": 158879,
                            "mimeType": "image/png",
                            "token": "space/2020/05/26/1265120551721406466",
                            "width": 800,
                            "height": 800,
                            "url": "https://s1.vika.cn/space/2020/05/26/1265120551721406466"
                        }
                    ],
                    "主要卖点": [
                        "高硼硅玻璃",
                        "煮",
                        "保温"
                    ]
                }
            },
            // ...more
        ]
    },
    "message": "SUCCESS"
}

results matching ""

    No results matching ""