Files
friflex_flutter_starter/lib/app/http/app_http_client.dart

36 lines
1.2 KiB
Dart
Raw Normal View History

2025-01-21 14:24:31 +03:00
import 'package:dio/dio.dart';
import 'package:friflex_starter/app/app_config/app_config.dart';
2025-01-21 14:24:31 +03:00
import 'package:friflex_starter/features/debug/i_debug_service.dart';
/// {@template app_http_client}
/// Класс для реализации HTTP-клиента для управления запросами
/// {@endtemplate}
final class AppHttpClient {
2025-01-21 14:24:31 +03:00
/// Создает HTTP клиент
///
/// Принимает:
/// - [debugService] - сервис для логирования запросов
/// - [appConfig] - конфигурация приложения
AppHttpClient({
required IDebugService debugService,
required IAppConfig appConfig,
}) {
_httpClient = Dio();
_httpClient.options
..baseUrl = appConfig.baseUrl
..connectTimeout = const Duration(seconds: 5)
..sendTimeout = const Duration(seconds: 7)
..receiveTimeout = const Duration(seconds: 10)
..headers = {'Content-Type': 'application/json'};
debugService.log('HTTP client created');
_httpClient.interceptors.add(debugService.dioLogger);
2025-01-21 14:24:31 +03:00
}
/// Экземпляр HTTP клиента
late final Dio _httpClient;
Dio get client => _httpClient;
2025-01-21 14:24:31 +03:00
}