mirror of
https://github.com/smmarty/friflex_flutter_starter.git
synced 2025-12-22 17:40:45 +00:00
refactor(http): удалить интерфейс IHttpClient и упростить реализацию AppHttpClient (#42)
* 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>
This commit is contained in:
@@ -1,13 +1,12 @@
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:friflex_starter/app/app_config/app_config.dart';
|
||||
import 'package:friflex_starter/app/http/i_http_client.dart';
|
||||
|
||||
import 'package:friflex_starter/features/debug/i_debug_service.dart';
|
||||
|
||||
/// {@template app_http_client}
|
||||
/// Класс для реализации HTTP-клиента для управления запросами
|
||||
/// {@endtemplate}
|
||||
final class AppHttpClient implements IHttpClient {
|
||||
final class AppHttpClient {
|
||||
/// Создает HTTP клиент
|
||||
///
|
||||
/// Принимает:
|
||||
@@ -18,7 +17,6 @@ final class AppHttpClient implements IHttpClient {
|
||||
required IAppConfig appConfig,
|
||||
}) {
|
||||
_httpClient = Dio();
|
||||
_appConfig = appConfig;
|
||||
|
||||
_httpClient.options
|
||||
..baseUrl = appConfig.baseUrl
|
||||
@@ -30,111 +28,8 @@ final class AppHttpClient implements IHttpClient {
|
||||
_httpClient.interceptors.add(debugService.dioLogger);
|
||||
}
|
||||
|
||||
/// Конфигурация приложения
|
||||
late final IAppConfig _appConfig;
|
||||
|
||||
/// Экземпляр HTTP клиента
|
||||
late final Dio _httpClient;
|
||||
|
||||
@override
|
||||
Future<Response> get(
|
||||
String path, {
|
||||
Object? data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
}) async {
|
||||
_httpClient.options.baseUrl = _appConfig.baseUrl;
|
||||
|
||||
return _httpClient.get(
|
||||
path,
|
||||
data: data,
|
||||
queryParameters: queryParameters,
|
||||
options: options,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Response> post(
|
||||
String path, {
|
||||
Object? data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
}) async {
|
||||
_httpClient.options.baseUrl = _appConfig.baseUrl;
|
||||
|
||||
return _httpClient.post(
|
||||
path,
|
||||
data: data,
|
||||
queryParameters: queryParameters,
|
||||
options: options,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Response> patch(
|
||||
String path, {
|
||||
Object? data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
}) async {
|
||||
_httpClient.options.baseUrl = _appConfig.baseUrl;
|
||||
|
||||
return _httpClient.patch(
|
||||
path,
|
||||
data: data,
|
||||
queryParameters: queryParameters,
|
||||
options: options,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Response> put(
|
||||
String path, {
|
||||
Object? data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
}) async {
|
||||
_httpClient.options.baseUrl = _appConfig.baseUrl;
|
||||
|
||||
return _httpClient.put(
|
||||
path,
|
||||
data: data,
|
||||
queryParameters: queryParameters,
|
||||
options: options,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Response> delete(
|
||||
String path, {
|
||||
Object? data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
}) async {
|
||||
_httpClient.options.baseUrl = _appConfig.baseUrl;
|
||||
|
||||
return _httpClient.delete(
|
||||
path,
|
||||
data: data,
|
||||
queryParameters: queryParameters,
|
||||
options: options,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Response> head(
|
||||
String path, {
|
||||
Object? data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
}) async {
|
||||
_httpClient.options.baseUrl = _appConfig.baseUrl;
|
||||
|
||||
return _httpClient.head(
|
||||
path,
|
||||
data: data,
|
||||
queryParameters: queryParameters,
|
||||
options: options,
|
||||
);
|
||||
}
|
||||
Dio get client => _httpClient;
|
||||
}
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
import 'package:dio/dio.dart';
|
||||
|
||||
/// Класс для описания интерфейса сервиса по управлению HTTP запросами
|
||||
abstract interface class IHttpClient {
|
||||
/// Описывает поля HTTP клиента
|
||||
const IHttpClient();
|
||||
|
||||
/// Наименование сервиса
|
||||
static const name = 'IHttpClient';
|
||||
|
||||
/// Метод для реализации запроса GET
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [path] - путь к ресурсу
|
||||
/// - [data] - тело запроса
|
||||
/// - [queryParameters] - параметры запроса
|
||||
/// - [options] - конфигурация запроса
|
||||
Future<Response> get(
|
||||
String path, {
|
||||
Object? data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
});
|
||||
|
||||
/// Метод для реализации запроса POST
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [path] - путь к ресурсу
|
||||
/// - [data] - тело запроса
|
||||
/// - [queryParameters] - параметры запроса
|
||||
/// - [options] - конфигурация запроса
|
||||
Future<Response> post(
|
||||
String path, {
|
||||
Object? data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
});
|
||||
|
||||
/// Метод для реализации запроса PATCH
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [path] - путь к ресурсу
|
||||
/// - [data] - тело запроса
|
||||
/// - [queryParameters] - параметры запроса
|
||||
/// - [options] - конфигурация запроса
|
||||
Future<Response> patch(
|
||||
String path, {
|
||||
Object? data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
});
|
||||
|
||||
/// Метод для реализации запроса PUT
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [path] - путь к ресурсу
|
||||
/// - [data] - тело запроса
|
||||
/// - [queryParameters] - параметры запроса
|
||||
/// - [options] - конфигурация запроса
|
||||
Future<Response> put(
|
||||
String path, {
|
||||
Object? data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
});
|
||||
|
||||
/// Метод для реализации запроса DELETE
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [path] - путь к ресурсу
|
||||
/// - [data] - тело запроса
|
||||
/// - [queryParameters] - параметры запроса
|
||||
/// - [options] - конфигурация запроса
|
||||
Future<Response> delete(
|
||||
String path, {
|
||||
Object? data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
});
|
||||
|
||||
/// Метод для реализации запроса POST
|
||||
///
|
||||
/// Принимает:
|
||||
/// - [path] - путь к ресурсу
|
||||
/// - [data] - тело запроса
|
||||
/// - [queryParameters] - параметры запроса
|
||||
/// - [options] - конфигурация запроса
|
||||
Future<Response> head(
|
||||
String path, {
|
||||
Object? data,
|
||||
Map<String, dynamic>? queryParameters,
|
||||
Options? options,
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user