advanced_api_client 1.0.1
advanced_api_client: ^1.0.1 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.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