seedkit_module_api 0.4.0 copy "seedkit_module_api: ^0.4.0" to clipboard
seedkit_module_api: ^0.4.0 copied to clipboard

Модуль API экосистемы SeedKit

seedkit_module_api #

Пакет API-модуля для SeedKit-приложений.

Интеграция #

  • Перед созданием API providers заполни ApiConfig:
ApiConfig.set(
  baseApiUrl: EnviromentUtils.apiUrl,
  dioCachePath: DeviceUtils.dioCachePath,
  deviceId: DeviceUtils.deviceId,
  platform: DeviceUtils.platform,
  appKey: EnviromentUtils.appKey,
);
  • Если нужны дополнительные headers, заполни их до запросов:
ApiConfig.additionalHeaders = {
  'x-project': 'seedkit',
};
  • Для локализации ошибок API добавь делегат в MaterialApp:
MaterialApp.router(
  localizationsDelegates: const [
    SeedKitModuleApiLocale.delegate,
  ],
);
  • Для авторизации создаётся provider и repository:
final authProvider = AuthProvider();

RepositoryProvider(
  create: (_) => AuthRepository(authProvider),
);

Использование #

  • ApiConfig — входная точка API-модуля: base URL, cache path, device id, platform, app key, additional headers.
  • ApiClient — базовый клиент для provider-реализаций; методы get, post, put, patch, delete, batch, download, upload.
  • ConnectivityFactory — singleton factory сервиса проверки подключения к интернету.
  • RequestEnum, AuthStatusEnum, OnProgressFunction, AuthUrls, DioCacheEnum.
  • MockInterseptor — interceptor для providers с моковыми данными.
  • BaseException и стандартные исключения API.
  • AuthProfileModel, AuthPhoneParams, AuthLoginParams.
  • PaginationModel, SortBy, SortOrder, IPaginationItem.
  • AuthProvider — API provider авторизации: login, sms, logout, delete profile, OAuth URL/callback.
  • Either, Left, Right и другие типы результата.
  • ErrorHandler, PaginationExtension, JsonFieldAliasModel.
  • SeedKitModuleApiLocale и SeedKitModuleApiLocale.delegate.

Импорты #

import 'package:seedkit_module_api/seedkit_feature_api_locale_delegate.dart';
import 'package:seedkit_module_api/seedkit_module_api.dart';
import 'package:seedkit_module_api/seedkit_module_api_client.dart';
import 'package:seedkit_module_api/seedkit_module_api_connectivity.dart';
import 'package:seedkit_module_api/seedkit_module_api_constants.dart';
import 'package:seedkit_module_api/seedkit_module_api_interceptors.dart';
import 'package:seedkit_module_api/seedkit_module_api_models.dart';
import 'package:seedkit_module_api/seedkit_module_api_pagination.dart';
import 'package:seedkit_module_api/seedkit_module_api_providers.dart';
import 'package:seedkit_module_api/seedkit_module_api_to.dart';
import 'package:seedkit_module_api/seedkit_module_api_utils.dart';