该包是 Flutter 的自定义网络层,它利用流行的 Dio HTTP 客户端库来管理 API 请求。它提供了一个通用的响应模型,并支持可选的基于请求的缓存。缓存功能可减少不必要的网络流量,并在多次进行相同 API 请求时提高应用程序性能。

使用此包,您可以轻松管理应用程序的网络层,并开发更快、更高效的应用程序。

特点

  • 通用响应模型
  • 基于请求的缓存
  • 可自定义的请求标头、查询参数和请求体,包括对 multipart 文件上传的支持。

入门

安装

将以下依赖项添加到您的 pubspec.yaml 文件中

dependencies:
  busbus: ^0.1.0

用法

导入包

import 'package:busbus/busbus.dart';

创建一个新的网络管理器实例

...
INetworkManager manager = NetworkManager<SampleResponseModel>()
        ..initialize(
          NetworkConfiguration('<base-url>'),
          responseModel: SampleResponseModel(),
          cacheStoreKey: 'boilerplate_cache',
          entityKey: 'body', // optional - defaults to 'body' || 'data' || 'result'
        );
...

发起请求

...
final response = await coreDio.send<SamplePostModel, SamplePostModel>(
      '${NetworkPaths.getSamplePost}/1',
      parserModel: const SamplePostModel(),
      type: HttpTypes.get,
      cachePolicy: CachePolicy.forceCache, // optional - defaults to CachePolicy.noCache
      maxStale: const Duration(seconds: 10), // optional - defaults to 10 seconds if cachePolicy is CachePolicy.forceCache
    ) as SampleResponseModel;

    switch (response.statusCode) {
      case 1:
        return response.data as SamplePostModel;
      default:
        return null;
    }
...

许可证

本项目根据 MIT 许可证授权 – 详情请参见 LICENSE 文件

GitHub

查看 Github