云云AI 开发日志:把登录状态和 API 响应处理统一起来

页面增多后,接口约定更重要

云云AI 的网页控制台有账户、订单、直播和模型相关页面。页面越多,越需要统一接口调用方式:同样的登录失效不能在一个页面跳转,在另一个页面只显示空白;同样的业务失败也不应该每个组件各写一套判断。

当前项目把请求逻辑集中在接口模块中,页面主要负责展示数据和收集用户操作。排查问题时,先确认请求和返回值,再看界面如何消费数据,比直接在组件里反复改字段更清楚。

登录凭据随请求传递

网页端使用 Bearer token,在 Authorization 请求头里传递凭据。前端直接访问后端域名,因此还要和服务端的 CORS 配置保持一致。是否能访问接口,需要同时检查请求地址、请求头和后端允许的来源。

受保护页面经过路由守卫,登录失效时清理本地登录态并引导重新登录。这样用户看到的是明确的下一步,而不是一个一直转圈的控制台。

解包只遵循一套约定

当前 Axios 拦截器会把成功响应整理为内层数据。使用已有 API helper 与直接使用 http 对象时,要理解各自返回的结构,避免把已经解包的结果再当作完整响应读取。

这个细节看起来很小,却会影响列表、表单和账户余额等很多页面。维护接口时,我会把字段结构和调用方式一起核对,尽量让页面只处理自己真正需要的数据。

业务失败也属于正常交互

项目区分成功、业务失败、登录失效和升级提示等响应情况。提交表单时要有校验和 loading,查询列表时要有加载、空结果和错误状态。接口返回失败,页面也应该保留足够的信息让用户调整后重试。

这篇日志整理了网页端联调的基本方法:先统一协议,再让每个业务页面沿用它。后续继续扩展控制台时,这些约定会帮助我减少重复判断,也让用户操作更一致。

项目链接

云云AI · 直播助手

同项目开发日志