平时开发项目,少不了要看API文档。但很多接口成百上千,找起来费劲。这时候,API文档里的过滤条件就派上大用场了。
什么是API文档过滤条件
简单说,就是通过某些参数缩小接口返回的数据范围。比如你只想查2024年3月的订单,加个时间参数就行,不用把所有订单拉下来再手动筛。
常见过滤字段有:状态(status)、创建时间(created_at)、用户ID(user_id)、关键词(keyword)等。不同系统支持的字段不一样,得看具体文档说明。
实际使用场景
比如你在做后台管理系统,要展示“待发货”的订单。直接请求 /api/orders?status=pending,服务器只返回待发货的数据,页面加载快,网络压力也小。
再比如搜索用户,输入名字关键字:/api/users?keyword=张三,后端按姓名模糊匹配,结果立马出来。
带范围的过滤怎么写
时间或数值类的过滤,常支持区间。比如查某段时间内的日志:
/api/logs?start_time=2024-03-01T00:00:00&end_time=2024-03-31T23:59:59有些接口还支持大于小于,比如价格超过100的 商品:
/api/products?price_gt=100多个条件组合查询
实际用的时候,往往不只一个条件。比如查某个用户在三月的已完成订单:
/api/orders?user_id=123&status=completed&start_time=2024-03-01&end_time=2024-03-31注意参数名以文档为准,别自己瞎猜。传错了字段,可能返回空数据,也可能报错,调试起来挺头疼。
前端怎么配合使用
在写前端代码时,可以把用户操作转化成过滤参数。比如选了日期范围,就自动拼接 start_time 和 end_time;输入搜索框,就加上 keyword。这样每次请求都是精准数据,用户体验也好。
举个fetch例子:
fetch(`/api/articles?keyword=${searchInput}&category=${selectedCat}`)
.then(res => res.json())
.then(data => renderList(data));踩过的坑提醒
有次我查数据一直没结果,最后发现是时间格式不对。文档要求ISO格式,我传了 YYYY-MM-DD hh:mm:ss,少了T,也没转UTC,结果被当成无效参数忽略了。
还有就是大小写敏感问题。status传成 <code>Status</code> 或 <code>STATUS</code>,有些接口直接不认。老老实实照文档来最省事。
用好过滤条件,不只是省流量,关键是让前后端沟通更高效。别图省事一股脑全拉回来再过滤,数据一多,卡的就是你自己。