codercup / unibest

unibest - 最好用的 uniapp 开发框架。unibest 是由 uniapp + Vue3 + Ts + Vite4 + UnoCss + UniUI 驱动的跨端快速启动模板,使用 VS Code 开发,具有代码提示、自动格式化、统一配置、代码片段等功能,同时内置了大量平时开发常用的基本组件,开箱即用,让你编写 uniapp 拥有 best 体验。
https://codercup.github.io/unibest-docs/
MIT License
1.4k stars 178 forks source link

uni.addInterceptor拦截request的问题 #24

Closed dhanweb closed 3 months ago

dhanweb commented 4 months ago

项目有可能出现需要请求2个不同的后端,请求参数结构和响应参数结构完全不一样的,这时候就需要创建2个http实例来分别对应2个后端,但现在使用了uni.addInterceptor把所有的请求都拦截了,都在一个http实例处理了 我只在以前的公司碰到过类似的情况,不止要请求后端接口,部分数据还要额外请求ERP的接口,因为请求的根路径和响应的数据结构与我们公司的后端都不一样,这个时候我一般都是再创建一个http实例,请求公司后端使用实例A,请求ERP使用实例B,2者互不干扰

codercup commented 4 months ago

对的,你这个需求很常见,是我考虑不周。我改进下,感谢~

codercup commented 3 months ago

后面讨论了下,有2个方案: 1)前端处理,多个http实例(不推荐)。http拦截器里面,baseUrl 不用自动拼接到 完整url, 通过实例http 传入。 2)服务器转发,分别考虑本地开发和线上环境。本地开发使用 vite的本地服务器,线上使用 nginx转发。

codercup commented 3 months ago

因为本需求目前只个别人遇到,所以不打算更改现在的实现方式。