API文档过滤条件怎么用?一文讲清楚

平时开发项目,少不了要看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>,有些接口直接不认。老老实实照文档来最省事。

用好过滤条件,不只是省流量,关键是让前后端沟通更高效。别图省事一股脑全拉回来再过滤,数据一多,卡的就是你自己。