Wujies 无界平台
多端前端PC 用户端

C 端接口与应用

这是接入 PC 用户端(以及 H5 / App)时最容易踩的坑,值得单独一页。

一句话

平台宿主不自带任何 C 端控制器。 /open/**、/portal/** 这些路径是**应用(插件)**提供的;对应应用没安装,接口就是 404。

为什么要这样设计

如果 C 端接口写在宿主里,那么每加一个 C 端业务(商城、会员、考试……)都要改宿主、重新编译、重新发版。把 C 端能力随应用走之后:

  • 加一个业务 = 装一个应用;
  • 应用可以独立升级,不需要重启宿主;
  • 用户端只依赖「接口契约」,不依赖「平台版本」。

代价是:接口是否存在,取决于运行期装了哪些应用。 这正是排查时最容易忽略的变量。

排查顺序

接口 404
  ├─ ① 对应应用装了吗?启用了吗?   → 我的应用 / 应用市场
  ├─ ② 应用版本包含这个接口吗?     → 应用详情里的版本与更新日志
  └─ ③ 最后才查路径拼写 / 代理配置

不要一上来就查 Nginx 和前端代码。先确认应用装没装,能省掉大部分时间。

怎么快速确认

在后台「我的应用」里看应用状态;或直接请求后端 GET /app/install/mine,确认返回里包含该 appCode 且状态为启用。

常见接口前缀

前缀典型用途提供方
/open/**无需登录的开放数据(商品、内容、配置)对应业务应用
/portal/**登录用户的门户数据(订单、会员、消息)对应业务应用
/auth/**登录、验证码、刷新 token平台宿主
/system/**字典、地区、上传等基础能力平台宿主

具体路径以各应用的接口清单为准,见 HTTP 接口索引 与 开放接口清单。

登录与 token

  • PC 用户端使用 C 端会员登录,不复用后台管理员会话;
  • token 存在前端(Pinia + 持久化),请求头格式与平台一致;
  • 401 时跳登录页;403 是权限不足,不要当成未登录处理。

跨域

开发环境走 Vite 代理,不存在跨域;生产环境两种做法:

  1. 同域反代(推荐):VITE_APP_BASE_API=/prod-api,Nginx 转发到后端;
  2. 跨域直连:VITE_APP_BASE_API=https://api.example.com/,后端必须允许对应 Origin、Credentials 与自定义头。

改了 .env.production 要重新构建,环境变量是构建期注入的。

目录