init static method
Future<void>
init({
- required String baseUrl,
- required AuthStrategy authStrategy,
- String defaultVersion = '',
- Duration defaultCacheTtl = const Duration(minutes: 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);
}