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.dart

lib/utils/http/http_util.dart + interceptor/ + http_key.dartlib/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 算钱)。