用途:在 Flutter 项目中用 Dio 与 Retrofit 搭建类型安全的 HTTP 网络层,适合需要对接 REST API、统一处理认证与错误的场景。
主要能力:按 infrastructure 结构组织代码,data_sources/remote 放 Retrofit 抽象类,data_sources/local 放缓存与存储,network 下放自定义 dio_client.dart 与 interceptors(认证、日志、缓存)。工作流包括:用 @RestApi() 与 @GET、@POST 等注解定义 Retrofit 客户端,方法返回 Future<DTO>;用 @freezed 与 @JsonSerializable 定义请求与响应 DTO;数据源将 DTO 映射为领域实体(如 userDto.toDomain());枚举使用 @JsonKey(unknownEnumValue: Status.unknown) 防止后端新增值导致崩溃;在 onRequest 注入 Authorization: Bearer <token>;遇到 401 时锁定 Dio、调用 refreshToken()、更新存储的 token,并通过 dio.fetch(err.requestOptions) 重试;将 DioException 转换为类型化 Failure(ServerFailure、NetworkFailure)。
使用方式:按上述目录结构创建 Retrofit 抽象类与 DTO,通过依赖注入提供 Dio 实例,在 repository 层统一处理 Retrofit 异常。RestClient 定义与认证拦截器实现可参考 references/REFERENCE.md。
限制与反模式:不要手动 jsonDecode,应使用 Retrofit 生成的映射器;不要使用全局 Dio 实例,应通过 DI 注入;不要在数据源内联 try-catch,异常应由 repository 层处理;枚举必须带 unknownEnumValue。相关主题:feature-based-clean-architecture、error-handling。具体安装命令与版本信息暂未提供。