ArkTS 网络层设计:从页面状态到接口契约
把地址、请求、解析、错误分类和 UI 状态拆开,避免页面组件直接拼 URL。
别让页面组件直接拼 URL
学习鸿蒙端开发时,最容易失控的不是组件,而是网络层。页面里散落的地址拼接、魔法状态码和随意类型,会让联调与排错成本快速上升。
一层清晰的网络结构
- 环境配置:开发、测试、生产地址独立。
- 服务类:只负责发请求、超时与响应码判断。
- 模型解析:接口 snake_case 转端侧 camelCase。
- 页面状态:loading / success / empty / error 分开。
- 重试策略:只重试幂等请求,且必须有上限。
错误分类
- 网络错误:地址错、证书错、断网。
- 服务错误:5xx 或后端异常。
- 业务错误:参数校验失败、权限不足。
- 解析错误:接口字段与契约不一致。
不同错误给不同提示:网络错误提示重试,业务错误展示原因,解析错误要进入日志而不是伪装成“网络异常”。
契约先行
先把 GET /api/study/tasks/ 的分页字段、时间格式、空值和错误结构写清楚,再写 ArkUI 页面与 Django 视图。契约稳定后,端侧与后端可以并行开发。
检查点
- 页面组件里没有接口地址。
- 请求超时与读超时分开设置。
- 所有接口返回都有类型。
- 失败后用户知道下一步能做什么。
评论
Giscus 评论配置完成后自动开启。可在
.env中填写 GISCUS_* 变量。