207 字
1 分钟
按域拆 API:shop 项目的网络层设计
9 个 API 文件,一个域一个
lib/api/ car_api.dart data_center_api.dart home_api.dart igo_api.dart login_api.dart order_api.dart public_api.dart station_api.dart worker_api.dartlib/utils/http/ 下 http_util.dart + interceptor/ + http_key.dart,lib/service/user_service.dart 管登录态。和 Business3 同一套 GetX + dio 底子,但 API 按业务域拆而不是一个大 ApiClient——门店业务(车辆、工位、技师、订单)边界清晰,合并冲突都少一半。
拦截器管横切面
token 附加/刷新、签名、loading、错误码转 toast,全在 interceptor 里。业务代码只写 order_api.getList(params),干净得像调本地函数。
和 Business3 的对比
- 同:GetX + dio + pretty_dio_logger + encrypt + dotenv
- 异:shop 用官方
pull_to_refresh_flutter3(Business3 用 gitee fork 修兼容),shop 多了fl_chart+syncfusion双图表、decimal金额计算、chinese_number中文数字——经营数据展示是这个 App 的主战场
网络层设计看三处:按什么拆、横切面放哪、金额怎么算(decimal,别用 double 算钱)。