init static method

Future<void> init({
  1. required String baseUrl,
  2. required AuthStrategy authStrategy,
  3. String defaultVersion = '',
  4. Duration defaultCacheTtl = const Duration(minutes: 5),
  5. String? apiKey,
})

Initialise the entire server layer. Call once in main before runApp.

await Server.init(
  baseUrl: 'https://api.example.com',
  authStrategy: BearerStrategy(tokenKey: 'access_token'),
  defaultCacheTtl: Duration(minutes: 5),
);

Implementation

static Future<void> init({
  required String baseUrl,
  required AuthStrategy authStrategy,
  String defaultVersion = '',
  Duration defaultCacheTtl = const Duration(minutes: 5),
  String? apiKey,
}) async {
  // 1. Hive
  await Hive.initFlutter();

  // 2. Config
  ServerConfig.baseUrl = baseUrl;
  ServerConfig.defaultCacheTtl = defaultCacheTtl;
  ServerConfig.apiKey = apiKey;

  // 3. Cache
  await ApiCache.init();

  // 4. Cookies
  await CookieManager.init(baseUrl);

  // 5. Dio clients
  ApiClient.init(baseUrl: baseUrl, authStrategy: authStrategy);
}