advanced_api_client 1.0.2
advanced_api_client: ^1.0.2 copied to clipboard
Production-ready Flutter/Dart API client built on Dio with authentication, automatic token refresh, retry interceptor, file uploads, global error handling, and clean architecture.
Changelog #
All notable changes to this package will be documented in this file.
1.0.2 #
🚀 Improvements #
- Improved global session expiration handling without requiring BuildContext.
- Improved retry safety for multipart uploads after token refresh.
- Enhanced FormData rebuilding logic to prevent finalized stream reuse issues.
- Improved logging clarity for refresh flow, retries, and upload progress.
- Refactored internal _request() logic for better readability and maintainability.
🛠 Bug Fixes #
- Fixed rare race condition when multiple requests attempted token refresh simultaneously.
- Fixed edge case where CancelToken was not passed correctly to retried upload requests.
- Fixed retry request headers not preserving original request headers.
Added #
- Better production-safe retry mechanism for requests with FormData.
- Improved upload task cancellation support using CancelToken.
- Support for dynamic body rebuild for retried multipart requests.
- Additional debug logs for retry attempts and token refresh flow.
1.0.1 #
🛠 Bug Fixes #
- Fixed _FormData already finalized error when retrying uploads after token refresh.
- Resolved bodyBuilder missing issue in RefreshConfig for dynamic refresh API bodies.
- Corrected named parameter mismatches in _request() and Dio request options.
- Prevented token refresh infinite loops on concurrent requests.
Added #
- Support for bodyBuilder in RefreshConfig for dynamic refresh request bodies.
- Ability to fetch user_id or other dynamic data from SharedPreferences during token refresh.
- Optional CancelToken support per upload task for better upload management.
- Improved logging for upload progress and retry actions.
- Dynamic handling of multiple file uploads with different field names.
- Added SharedPrefsTokenStorage example for storing token and extra data separately.
Improved #
- Safer retry mechanism for POST/PUT requests using FormData after token refresh.
- Cleaner interceptor logs and separation between auth and upload flows.
- More robust _request() core function with error parsing improvements.
- Improved production safety and scalability of AdvancedApiClient.
1.0.0 #
🚀 Production Release #
Added #
- Production-ready architecture
- Centralized
AdvancedApiClient - Robust
_request()core handler - Global error handling via
ApiConfig.onError - Automatic token refresh mechanism
- Retry interceptor with timeout & connection retry support
- Session termination with request cancellation
- Single file upload support
- Multiple file upload support (same field)
- Multiple file upload support (dynamic field names)
- Improved error parsing with
ApiException - Debug logging (enabled in debug mode only)
- Custom Dio interceptor support
- Safe singleton initialization
- Lazy initialization option
Improved #
- Cleaner internal request handling
- Stronger error mapping for
DioException - Better file existence validation
- More stable cancel token management
- Improved production safety & scalability