initialize method
Initialize the API client.
Sets up the HTTP client with base URL, headers, and timeout configuration. Also initializes secure storage and loads any previously stored tokens.
baseUrl is the base URL of your Magento instance
headers optional custom headers to include with all requests
connectionTimeout timeout for establishing connection in milliseconds
receiveTimeout timeout for receiving data in milliseconds
Returns true if initialization was successful, false otherwise.
Implementation
Future<bool> initialize({
required String baseUrl,
Map<String, String>? headers,
int? connectionTimeout,
int? receiveTimeout,
}) async {
try {
_baseUrl = baseUrl;
// Initialize secure storage
_secureStorage = const FlutterSecureStorage();
// Load stored tokens
await _loadStoredTokens();
// Setup Dio client
_dio = Dio(
BaseOptions(
baseUrl: baseUrl,
connectTimeout: Duration(seconds: connectionTimeout ?? 30),
receiveTimeout: Duration(seconds: receiveTimeout ?? 30),
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
...?headers,
},
),
);
// Add interceptors
_setupInterceptors();
return true;
} catch (e) {
print('Failed to initialize MagentoApiClient: $e');
return false;
}
}