添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Skip to content

服务端交互与数据Mock

说明

本文档介绍如何在开发环境下使用 Mock 数据和与服务端进行交互,涉及到的技术有:

  • Nitro 轻量级后端服务器,可部署在任何地方,项目用作于 Mock 服务器。
  • axios 用于发送 HTTP 请求与服务端进行交互。

开发环境交互

如果前端应用和后端接口服务器没有运行在同一个主机上,你需要在开发环境下将接口请求代理到接口服务器。如果是同一个主机,可以直接请求具体的接口地址。

本地开发跨域配置

提示

本地开发跨域配置项目已经配置好了,如有其他需求,可以自行增加或者调整配置。

配置本地开发接口地址

在项目根目录下的 .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 方法即可: