playx_network 0.5.1
playx_network: ^0.5.1 copied to clipboard
playx_network is a Wrapper around Dio that can perform api request with better error handling and easily get the result of any api request.
Changelog #
0.5.1 #
- Updated dependencies to their latest versions.
- Enhanced logging errors and exceptions to provide more detailed information.
0.5.0 #
Note: This version contains breaking changes.
New Features #
- Export
DioClient: A simple and customizable HTTP client based on Dio is now available directly from theplayx_networkpackage.
Improvements #
Logger Overhaul
- Replaced
pretty_dio_loggerwithtalker_dio_loggerfor better log control and Talker integration. - Updated
PlayxNetworkLoggerSettingsto support detailed logging configuration. - Integrated
PlayxLoggerfor consistent logging across the Playx ecosystem.
Other #
- Updated dependencies to their latest versions.
- Bump minimum Dart SDK version to 3.5.0 and Flutter SDK version to 3.24.0.
- Migrated Android example project to Kotlin DSL.
0.4.0 #
Note: This version contains breaking changes.
Breaking Changes #
- NetworkResult
- Renamed FormatException → InvalidFormatException to avoid conflict with Dart’s built-in FormatException.
New Features && Enhancements #
- Update dio to v5.8.0+1
- Support FileAccessMode in Dio.download to change download file opening mode.
NetworkResult #
- New
mapDataAsyncOrNullMethod which maps the success data to another type asynchronously, With option to map the error case or return null. whenmethod now returns the value instead of void.
NetworkException #
- NetworkException now extends Exception for better error handling.
- All exception classes now follow a streamlined format with default values for status codes.
0.3.1 0.3.2 #
- fix: bug when initializing PlayxNetworkClient.
0.3.0 #
-
Mapping Enhancements:
- Enhanced mapping of Dio responses with support for processing in an isolate using the
work_managerpackage or thecomputemethod. - Added parameters for mapping options in
PlayxNetworkClientSettings:useIsolateForMappingJson: Determines whether to use an isolate for mapping JSON responses.useWorkManagerForMappingJsonInIsolate: Specifies whether to usework_manageror thecomputefunction for JSON mapping in an isolate.
- Added the ability to override
PlayxNetworkClientSettingsfor individual requests, similar to overridinglogSettingsorexceptionMessages.
- Enhanced mapping of Dio responses with support for processing in an isolate using the
-
NetworkResult Enhancements:
- Added the following convenience getters to the
NetworkResultclass:isSuccess: Checks if the network call is successful.isError: Checks if the network call has failed.networkData: Returns the data if the call is successful, otherwise returnsnull.networkError: Returns the error if the call has failed.
- Added the following convenience getters to the
-
Asynchronous Mapping:
- Introduced new mapping methods for
NetworkResult:mapDataAsync: Maps a network response (success or error) to a desired model asynchronously.mapDataAsyncInIsolate: Maps a network response asynchronously in an isolate, with configurable options:mapper: The function for transforming data.exceptionMessage: A message to display in case of exceptions.useWorkManager: Determines whether to usework_managerorcomputefor JSON mapping.
mapAsyncInIsolate: Separately maps success and error cases asynchronously in an isolate, with configurable options:success: The function for mapping successful responses.error: The function for mapping error responses.useWorkManager: Determines whether to usework_managerorcompute.
- Introduced new mapping methods for
0.2.3 #
- fix: Bug causing error not being reported successfully.
- feat: Update
sentry_diopackage to v8.11.0.
0.2.2 #
- Add ability to download content using dio
downloadmethod.
0.2.0 0.2.1 #
Note: This version contains breaking changes.
Breaking Changes
- Combined
PlayxNetworkClientSettings:- Merged settings for
PlayxNetworkClientinto a newPlayxNetworkClientSettingsclass. - Renamed
LoggerSettingstoPlayxNetworkLoggerSettings.
- Merged settings for
New Features
- Custom Queries Support:
- Added the ability to include custom queries in network requests, enhancing flexibility for API interactions.
- Users can decide whether to use custom queries on a per-request basis by using the
attachCustomQueryoption.
Improvements
-
Enhanced
PlayxNetworkLoggerSettings:- Added options for attaching a logger in debug and release modes (
attachLoggerOnDebugandattachLoggerOnRelease).
- Added options for attaching a logger in debug and release modes (
-
Updated Dio Package:
- Upgraded Dio package to v5.7.0 for improved performance and features.
0.1.2 #
New Features
- Isolate-Based Data Processing:
- Integrated Dart's
Isolateto handle data processing in network responses, offloading CPU-intensive tasks to separate threads, which improves app performance, particularly in scenarios involving large datasets.
- Integrated Dart's
- Sentry Dio Integration:
- Added the Sentry Dio package to automatically capture and report errors in network requests to Sentry. This integration provides better monitoring and error tracking for network-related issues.
Improvements
- Updated
JsonMapperSignature:- The
JsonMapper<T>signature has been updated fromT Function(dynamic json)toFutureOr<T> Function(dynamic json)to support both synchronous and asynchronous JSON processing. This allows for more flexible and efficient handling of JSON data.
- The
Bug Fixes
- Fixed an issue where
getListandpostListmethods did not return results when the API response was not a list. Now, proper error handling ensures that non-list responses are processed correctly, preventing potential runtime errors.
0.1.1 #
- Update packages.
0.1.0 #
Note: This version contains breaking changes.
- Update packages.
- Update
onUnauthorizedRequestReceivedcallback to takeResponseinstead ofvoidto be able to customize unauthorized error handling based on response. - Add
namefield for default error model.
0.0.9 #
- Update packages.
- Add unauthorizedRequestCodes to be able to handle different unauthorized request status codes returned from the api and fire onUnauthorizedRequestReceived callback.
- Add successRequestCodes to be able to handle different success request status codes returned from the api and fire onUnauthorizedRequestReceived callback.
- Enhance printing non api error messages.
0.0.8 #
- Update packages.
- Add
statusCodetoApiExceptionto be able to handle different error status codes returned from the api.
0.0.7 #
- Update packages.
- Bug fix, causing
onUnauthorizedRequestReceivednot called when receiving unauthorized request on certain cases.
0.0.6 #
- Add ability to not handle unauthorized requests on each request.
- [Breaking Change]! : Each Network Exception now takes errorMessage of type String instead of exceptionMessage
0.0.5 #
- Enhancements for default error model.
0.0.4 #
- Make
customHeadersto be of type function that return a map to be updated correctly.
0.0.3 #
- fix some bugs causing error not being reported successfully.
0.0.2 #
- update from json to take dynamic json instead of map.
0.0.1 #
- initial release