用途:HTTP Integration Patterns 提供一套组织 HTTP 客户端代码的模式,用于统一管理 API 提供者、认证、错误处理与请求/响应流程。资料中的示例基于 Dart 的 http 包。
主要能力:
- HTTP Provider 模式:将 http.Client 与 baseUrl 注入 Provider 类,集中定义请求头(Content-Type、Accept 为 application/json),并封装 fetchUser、fetchAllUsers、createUser、deleteUser 等方法,按状态码(200、201、204、404 等)解析响应或抛出 ServerException。
- 认证客户端:通过继承 http.BaseClient 实现 AuthenticatedClient,在 send 中为请求注入 Authorization: Bearer <token> 及通用请求头,可结合依赖注入(如 Get.lazyPut)注册为全局 http.Client。
- 错误处理:捕获 SocketException、TimeoutException、FormatException 等,转换为 NetworkException 或 ServerException;请求使用 timeout(Duration(seconds: 10)) 控制超时。
使用方式:定义 Provider 类并注入 http.Client 与可选 baseUrl;用 Uri.parse 拼接端点,按需设置 headers 与 body(json.encode);对响应状态码分支处理,成功时用模型 fromJson 解析,失败时抛出带 message 与 statusCode 的异常。认证场景下用 AuthenticatedClient 包装底层客户端,并通过依赖注入提供 token 获取函数。
适用场景:需要在 Dart/Flutter 项目中统一封装 REST API 调用、集中处理认证与错误、避免重复网络代码时。
限制:资料未提供具体安装命令、依赖版本、平台支持范围、性能数据或收费信息;示例中的 UserModel、StorageService、ServerException、NetworkException 等类型未给出完整定义,需自行实现。