📜  APIClient.dart (1)

📅  最后修改于: 2023-12-03 14:59:21.417000             🧑  作者: Mango

APIClient.dart

介绍

APIClient.dart 是一款基于 Dart 语言开发的 HTTP 客户端库,旨在帮助开发者在 Flutter 或其他 Dart 应用程序中发送请求并消费 HTTP API。

它使用类似于 jQuery 的 API,并且也对功能进行了扩展,以便于向后端发送各种类型的请求,并能够方便地处理响应数据。APIClient.dart 还支持一些高级特性,如中间件、拦截器等,这些能够帮助您在应用之间共享或重用代码。

APIClient.dart 可以与任何支持 Dart 的应用程序一起使用,如 Flutter、Dart VM、Aqua、Mojave 等等。它还提供了易于使用的 API,支持各种 HTTP 请求类型,并能够自动处理请求数据的序列化和反序列化。

特性
  • 支持 GET、POST、PUT、DELETE 等类型的请求
  • 支持 JSON、表单和文件等数据类型的请求数据
  • 支持自定义请求头和请求参数
  • 支持超时和重试等请求设置
  • 自动处理请求数据的序列化和反序列化
  • 支持请求拦截器和响应拦截器
  • 支持中间件
  • 支持进行并发请求
  • 链式调用 API
  • 使用强类型检查
用法
发送 GET 请求
final apiClient = APIClient();
final response = await apiClient.get('https://www.example.com/api/users');
print(response.statusCode);
print(response.body);
发送 POST 请求
final apiClient = APIClient();
final response = await apiClient.post(
  'https://www.example.com/api/users',
  body: {'username': 'john.doe', 'password': 'password'},
);
print(response.statusCode);
print(response.body);
发送文件上传请求
final apiClient = APIClient();
final file = File('path/to/file.txt');
final response = await apiClient.post(
  'https://www.example.com/api/upload',
  files: [file],
);
print(response.statusCode);
print(response.body);
使用拦截器
final apiClient = APIClient();
apiClient.interceptors.add((request) async {
  final token = await getToken();
  request.headers['Authorization'] = 'Bearer $token';
  return request;
});
final response = await apiClient.get('https://www.example.com/api/users');
print(response.statusCode);
print(response.body);
使用中间件
class MyMiddleware extends APIClientMiddleware {
  @override
  Future<APIClientRequest> handleRequest(APIClientRequest request) async {
    final token = await getToken();
    request.headers['Authorization'] = 'Bearer $token';
    return request;
  }
}

final apiClient = APIClient();
apiClient.middleware.add(MyMiddleware());
final response = await apiClient.get('https://www.example.com/api/users');
print(response.statusCode);
print(response.body);
安装

pubspec.yaml 中添加以下依赖:

dependencies:
  api_client_dart: ^1.0.0