SuperAPI AI 工具集

flutter-networking

编程与开发

查看项目

更新于 10-15 12:33

技能介绍

用途

Flutter Networking 是一个网络代码智能体技能,用于在 Flutter 应用中实现、修复、调试、审查或重构网络相关代码。其目标是基于现有项目事实产出具体的 API 调用、客户端、服务、仓库、错误处理、认证流程与验证步骤,而不是作为教程使用。

主要能力

该技能覆盖 HTTP/REST API、WebSocket 实时流程、认证与令牌刷新、请求处理与状态判断、超时与重试、错误处理、缓存与分页、性能相关的解析与去重等内容。它为评审与调试任务列出的关注点包括:状态处理缺陷、客户端或订阅泄漏、不安全的令牌存储、缺失超时、泛型异常、大响应在 UI 线程解析、重复的在途请求以及缺失测试。

使用方式

技能以“核心契约”为核心:先通过检查 pubspec.yaml、lib/ 以及现有的网络、架构、状态管理、依赖注入、认证、持久化和测试约定,确认目标是 Flutter 或 Dart 包。除非项目尚无网络栈或用户明确要求迁移,否则保留现有客户端栈,并将示例适配到已有的 Dio、Retrofit、Chopper、生成客户端或自定义封装。实现时偏好小而可注入的客户端或服务,使用类型化解码函数、明确超时、显式状态处理、可取消或可释放资源以及可测试边界。架构上保持 UI 网络代码纤薄:服务负责端点调用,仓库负责数据策略,状态对象或 ViewModel 负责 UI 状态转换。

该技能按需读取资源:基础 HTTP CRUD 或 JSON 模型读 http-basics.md;认证头、令牌存储、登录、刷新、OAuth 读 authentication.md;状态码、异常、超时、重试、UI 错误读 error-handling.md;大 JSON、缓存、分页、去重、计时读 performance.md;WebSocket 连接、JSON 消息、重连、认证读 websockets.md。可复用的 http_service.dart 模板和 repository_template.dart 仅在适配基础 URL、解码函数、超时、认证和依赖注入后复制使用。

适用场景

适用于需要对 Flutter 项目网络层进行检查、修改、评审或排错的开发工作,例如接入新端点、修复认证刷新、处理实时连接、排查状态处理与泄漏问题、优化大响应的解析与缓存策略等。

限制

技能要求先确认项目为 Flutter 或 Dart 包;如果项目不可用或不是 Flutter 项目,只能给出实现计划或基于所提供上下文的评审,不得编造仓库事实,并需说明无法执行代码验证。仅在无法从项目推断高影响决策时向用户提问,例如缺少 API 契约、基础 URL、认证机制或令牌生命周期;实时行为需要产品语义(重连策略、顺序、投递保证、离线行为);缓存新鲜度、乐观更新、分页或重试策略会影响用户可见数据正确性;项目已有多个网络栈且目标不明确。验证方面,需使用仓库常规命令,优先 flutter analyze、针对性的 flutter test,以及对复制的 Dart 资产使用 dart format --output=none --set-exit-if-changed 模板检查;跳过的检查需说明。默认仅在新简单客户端中使用 http: ^1.6.0 和 web_socket_channel: ^3.0.3。敏感令牌应使用 flutter_secure_storage: ^10.0.0 或应用现有安全存储,不得存入源码、shared_preferences、日志或崩溃报告。WebSocket 使用 wss://,通过 IOWebSocketChannel 的自定义头仅限 IO,需要为 Flutter web 提供浏览器兼容替代方案。不应对 package:http 默认手动设置 Accept-Encoding。