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;
}
}