服务端交互与数据Mock
说明
本文档介绍如何在开发环境下使用 Mock 数据和与服务端进行交互,涉及到的技术有:
开发环境交互
如果前端应用和后端接口服务器没有运行在同一个主机上,你需要在开发环境下将接口请求代理到接口服务器。如果是同一个主机,可以直接请求具体的接口地址。
本地开发跨域配置
提示
本地开发跨域配置项目已经配置好了,如有其他需求,可以自行增加或者调整配置。
配置本地开发接口地址
在项目根目录下的
.env.development
文件中配置接口地址,这里配置为
/api
:
配置开发服务器代理
开发环境时候,如果需要处理跨域,接口地址在对应的应用目录下的
vite.config.mts
文件中配置:
接口请求
根据上面的配置,我们可以在前端项目中使用
/api
作为接口请求的前缀,例如:
此时,请求会被代理到
http://localhost:5320/api/user
。
注意
从浏览器控制台的 Network 看,请求是
http://localhost:5555/api/user
, 这是因为 proxy 配置不会改变本地请求的 url。
没有跨域时的配置
如果没有跨域问题,可以直接忽略
配置开发服务器代理
配置,直接将接口地址设置在
VITE_GLOB_API_URL
在项目根目录下的
.env.development
文件中配置接口地址:
生产环境交互
接口地址配置
在项目根目录下的
.env.production
文件中配置接口地址:
打包如何动态修改接口地址
.env
文件内的
VITE_GLOB_*
开头的变量会在打包的时候注入
_app.config.js
文件内。在
dist/_app.config.js
修改相应的接口地址后刷新页面即可,不需要在根据不同环境打包多次,一次打包可以用于多个不同接口环境的部署。
跨域处理
生产环境如果出现跨域问题,可以使用
nginx
代理接口地址 或者后台开启
cors
进行处理即可(可参考mock服务)。
接口请求配置
项目中默认自带了基于
axios
封装的基础的请求配置,核心由
@vben/request
包提供。项目没有过多的封装,只是简单的封装了一些常用的配置,如有其他需求,可以自行增加或者调整配置。针对不同的app,可能是用到了不同的组件库以及
store
,所以在应用目录下的
src/api/request.ts
文件夹下,有对应的请求配置文件,如
web-antd
项目下的
src/api/request.ts
文件,可以根据自己的需求进行配置。
请求示例
GET 请求
POST/PUT 请求
DELETE 请求
请求配置
应用内的
src/api/request.ts
可以根据自己应用的情况的需求进行配置:
多个接口地址
只需要创建多个
requestClient
即可,如:
刷新Token
项目中默认提供了刷新 Token 的逻辑,只需要按照下面的配置即可开启:
- 确保当前启用了刷新 Token 的配置
调整对应应用目录下的
preferences.ts
,确保
enableRefreshToken='true'
。
在
src/api/request.ts
中配置
doRefreshToken
方法即可: