有关前端 API 请求器封装的讨论

2021-12-16 · 周四开心多云

这个周四,Cocoro 做的稍微顺手了一点(其实是因为没有大量的异步查询了)。毕竟相较以往,没踩过的坑都踩过了不少,再踩到它也就不至于弄湿衣服了!

晚上和 @Innei 开始了一场热闹的讨论,有关于前端 API 请求器的封装。主要原因是我在微信小程序端是没有任何封装的,直接使用 wx.request 搞的,U1S1,确实有点傻。而他想打造一个通用方案,能跑在 NodeJS / 浏览器 甚至小程序上。

其中他就和我抱怨说 URLSearchParams 这个 API 不能在小程序环境上执行,很 🐶 币,感觉他恨不得弄出一套好用的库来用。相反我却是非常佛性,因为我接触过的项目,就使用过不同类型不同级别的封装程度,就压根没有一个统一的标准。

关于这个问题,我甚至还推理出了一套优劣,接下来也会弄成一篇文章发布,敬请期待吧!

他还给我看了一个大量 TS 重载的代码,我执意的说我现在写过的代码就没有什么场景用到它。然后他分享给我了一个很好的使用情形,根据不同 type 传入函数(文章/说说),返回不同 TS 类型定义的内容(文章接口包含什么,说说接口包含什么)。

search( type: 'note', keyword: string, options?: Omit<SearchOption, 'rawAlgolia'> ): Promise<RequestProxyResult<PaginateResult<Pick<NoteModel, 'modified' | 'id' | 'title' | 'created' | 'nid' >>>>
search( type: 'post', keyword: string, options?: Omit<SearchOption, 'rawAlgolia'> ): Promise<RequestProxyResult<PaginateResult<Pick<PostModel, 'modified' | 'id' | 'title' | 'created' | 'slug' | 'category' >>>>

我压根没想过这样的封装,现在依旧使用着 TypeScript 最基础的类型检测和异常预判。他这样的场景,我往往会将它们(文章/说说)分离,形成独立的函数进行返回,并分别指定其返回的类型...

Paul

Paul

特立独行的一只前端菜狗。这篇日记编写大概耗时了 0 分钟,内容均为个人原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!如本站内容对你有所帮助的话,不妨 捐助支持 一下?

近期评论

鲍小螺: 前辈多多指教!ahu: 后生可畏寻梦xunm: 真不错,板子很好看。timochan: 太惨了( ,更新暴毙,如果恢复没成功,数据也 dump 不出来鲍小螺: 在这部分对话中,广树和保罗继续讨论生活的不同方面。保罗提到了技术更新和国内的优秀 IT 技术。广树解释了在国内积累的经验如何在日本产生穿越的感觉,并表达了对于日本生活节奏的喜爱。他还提到了医疗水平的差异和对于生活方式的感受。保罗表示,通过动漫和现实的对比,艺术来源于现实,日本生活的确有着独特之处。他们讨论了国内的生活节奏和就医等方面的压力,以及个人选择的自由。最后,他们也谈到了不结婚不买房的选择和对于房价的困扰。鲍小螺: 该对话进一步讨论了房地产和税收的问题。保罗提到了国内的房地产税和增值税以及日本的固定资产税。广树解释了日本房地产税的收取方式,以及房产税对于国内房产的影响。他认为,与国内相比,日本的房子质量和服务更好。保罗提出疑问,为什么自己拥有的地也要交税。广树解释了类似增值税的原理,并指出在日本拥有房产是稳定安全的。最后,保罗表示从广树的角度来看,情况确实是如此。鲍小螺: 这篇文章的聊天记录也尝试过用 GPT 总结,结果并不是太好,不知道是不是 Prompt 的问题,实际出来的内容过于简练了,于是又耗费了半小时写完,呼~
奇趣音乐盒技术源于 Kico Player
Emmm,这里是歌词君