mirror of
https://github.com/smmarty/friflex_flutter_starter.git
synced 2026-02-05 03:32:18 +00:00
* refactor(http): удалить интерфейс IHttpClient и упростить реализацию AppHttpClient - Удален интерфейс IHttpClient, что упростило структуру кода. - AppHttpClient теперь напрямую использует Dio без промежуточного интерфейса. - Обновлены зависимости в репозиториях для использования нового HTTP клиента. * refactor(code): dart format * chore(pr-template): удалить отключения markdownlint из шаблона PR * docs(copilot-instructions): добавить правила проведения Code Review --------- Co-authored-by: petrovyuri <petrovyuri@example.com>
36 lines
1.2 KiB
Dart
36 lines
1.2 KiB
Dart
import 'package:dio/dio.dart';
|
|
import 'package:friflex_starter/app/app_config/app_config.dart';
|
|
|
|
import 'package:friflex_starter/features/debug/i_debug_service.dart';
|
|
|
|
/// {@template app_http_client}
|
|
/// Класс для реализации HTTP-клиента для управления запросами
|
|
/// {@endtemplate}
|
|
final class AppHttpClient {
|
|
/// Создает 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);
|
|
}
|
|
|
|
/// Экземпляр HTTP клиента
|
|
late final Dio _httpClient;
|
|
|
|
Dio get client => _httpClient;
|
|
}
|