针对get请求需要返不确定状态数据

情景介绍

假设你做了一套后台系统

其中有一个订单查询接口

公司有两个产品需要对接你这个接口

产品A: 我想需要已支付订单和待退款订单,你给我未支付,已完成的有啥用?

产品B: 我只需要待退款和已退款,你给我已支付,已完成的干嘛?

这种情况怎么处理?

毕竟是一个get请求。

那不简单,我们给不同产品写个不同的查询接口呗。

那假设后面再来两个产品,你就再加两个接口?

明显不太合理。

那咋办呢?


request.args.getlist('')

是的  getlist()

可以批量获取get请求中url上面拼接的key值一样的参数,组合成列表

大佬的描述如下

客户端请求的时候一般来说,给网络库传数组就行了

比如 requests.get('https://example.com/orders', params={'state': ['created', 'paid']}) 就会请求

https://example.com/orders?state=created&state=paid

不过不同的库在数组上的处理方式会有不同,常见的结果是变成 ?state=created&state=paid 或者 ?state[]=created&state[]=created,不过一般都是可以通过配置网络库选择不同的形式。如果要支持后者,需要通过 request.args.getlist('state[]') 获取

如果客户端可以设置成不带方括号的形式最好,客户端用的网络库不支持改的话,就要两个都支持一下(state 拿得到就用 state,拿不到就试试 state[])

大概理解为get请求可以传递多个同名但是不同值的参数,并且前端有语法可以实现。

然后使用 getlist()可以获取所有同名参数。

这样不同的产品可以主动传不同的状态,一个接口解决。

果真不错,,,,,

以上

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。