- feat: Simplify configuration of delay between retries by @jonasschaude in #122
- refactor!: use FutureOr to allow synchronous interceptors by @Leptopoda in #144
- docs: add ayyysh04 as a contributor for ideas by @allcontributors in #146
Beta Changelog: https://github.com/CodingAleCR/http_interceptor/compare/2.0.0-beta.8...2.0.0
Full Changelog: https://github.com/CodingAleCR/http_interceptor/compare/1.0.2...2.0.0
- docs: add @ntimesc as a contributor for ideas by @allcontributors in #116
- updated packages by @mauryagaurav947 in #129
Full Changelog: https://github.com/CodingAleCR/http_interceptor/compare/2.0.0-beta.6...2.0.0-beta.7
- ✨ Added:
Future<bool> shouldInterceptRequest()
andFuture<bool> shouldInterceptResponse()
. This enables individual interceptor checks and conditional intercepting configurations. - ✨ Added:
bodyBytes
toRequest.copyWith
. This adds support to set and modify the body as a stream of bytes. - ❗️🛠 Changed:
RetryPolicy
to beFuture<bool>
instead ofbool
so that you can support different exception retrying scenarios (See #115). - 📖 Changed: example project to showcase updated Flutter 3.0, new library APIs and
MultipartRequest
handling.
- ✨ Added: Support for
onRequestTimeout
when setting uprequestTimeout
on the interceptor.
- ❗️🛠 Changed:
shouldAttemptRetryOnException
will now also pass theBaseRequest
. - 🚦 Tests: Updated tests.
- 🐞 Fixed:
MultipartRequest
does not get intercepted correctly (has missing fields). - 🐞 Fixed:
MultipartRequest
ignores retry policy. - 🐞 Fixed: Changing
body
causes that theheaders
also change and ignore previous interceptions (i.e. content-type headers are overriden). - 🐞 Fixed:
copyWith
was missing fields - 🚦 Tests: Updated tests.
- 🐞 Fixed: Changing
body
causes that theheaders
also change and ignore previous interceptions (i.e. content-type headers are overriden). - 🚦 Tests: Updated tests.
- ❗️🛠 Changed: Renamed
Method
to useHttpMethod
and refactored helper functions into extensions (StringToMethod
, andMethodToString
). - ❗️🛠 Changed:
InterceptorContract
to useBaseRequest
andBaseResponse
instead of custom models. - ❗️🛠 Removed:
RequestData
andResponseData
since the classes are no longer used. - ✨ Added: Support for intercepting
Request
,StreamedRequest
andMultipartRequest
. - ✨ Added: Support for intercepting
Response
,StreamedResponse
andMultipartRequest
. - ✨ Added: Extensions for
BaseRequest
,Request
,StreamedRequest
andMultipartRequest
that allows copying requests through acopyWith
method. - ✨ Added: Extensions for
BaseResponse
,Response
,StreamedResponse
andIOStreamedResponse
that allows copying responses through acopyWith
method. - 📖 Changed: example project to showcase updated APIs.
- 🚦 Tests: Improved testing and documentation.
- 📖 Changed: example project to showcase
RetryPolicy
usage. - 🐞 Fixed:
parameters
were missing in requests of typePOST
,PUT
,PATCH
, andDELETE
. - 🐞 Fixed:
int
or other non-string parameters are not being added to request. Thanks to @meysammahfouzi - 🐞 Fixed:
body
is not sent in delete requests despite being accepted as parameter. Thanks to @MaciejZuk
- ✨ Changed:
ResponseData
now hasrequest
to allow checking on the request that triggered the response. Thanks to @II11II - 🐞 Fixed: Use
queryParametersAll
when creatingRequestData
. Thanks to @Mawi137 - 📖 Fixed:
README
to includerequired
keywords needed. Thanks to @meysammahfouzi - 🚦 Tests: Improved testing and documentation.
Check out the 1.0.0 migration guide for information on how to migrate your code.
- ❗️🛠 Changed: Renamed
HttpClientWithInterceptor
toInterceptedClient
. - ❗️🛠 Changed: Renamed
HttpWithInterceptor
toInterceptedHttp
. - ❗️🛠 Removed:
badCertificateCallback
fromInterceptedClient
andInterceptedHttp
in order to fully support Flutter Web 🌐 . In order to use refer to the migration guide. - ✨ Added: Array parameters on
RequestData
following a similar principle thanhttp
'squeryParametersAll
. - ✨ Changed:
ResponseData
now hasbodyBytes
to allow encoding or decoding in the format desired. - ✨ Changed: Migrated tests to use
test
package instead offlutter_test
. - ✨ Changed: More tests and coverage, this is a work in progress.
- 🗑 Removed: Package no longer depends on Flutter, which means that it can be used with standalone Dart projects.
- 🛠 Changed: Pre initialized
headers
andparams
onRequestData
. This was a missed change on null-safety migration.
Check out our 0.4.0 migration guide for information on how to migrate your code.
- ❗️✨ Added: String extension to allow
toUri()
usage when importing the library. Sincehttp
dropped support for string url usage and since Dart does not yet support function overloading, we had to implement an alternative through extensions. - ✨ Added: Flutter web support 🌐 (
badCertificateCallback
andfindProxy
features are not supported on Flutter Web due to browser limitations) - 🛠 Changed: Upgraded
http
to0.13.0
. - 🛠 Changed: Upgraded
effective_dart
to1.3.0
. - 🛠 Changed: Upgraded Dart
sdk
to>=2.12.0 <3.0.0
. (Yay! Sound null safety! 🎉) - 🗑 Removed:
meta
is removed since Dart's null safety now covers all uses inside this plugin
- 🛠 Changed: Plugin no longer depends on the
flutter/foundation.dart
, instead it usesmeta
plugin which allows for usage on non flutter environments. - 🛠 Changed: README now features a contribution and a roadmap sections for improving visibility on the project's future.
- 🛠 Changed:
badCertificateCallback
is now available to use without the experimental tag.
- 🛠 Changed: Example now showcases exception handling.
- 🛠 Changed: README now showcases exception handling.
- 🐞 Fixed: Interceptor no longer using custom exceptions, instead it rethrows in the case that the retry policy is not set or if it has reached max attempts.
- 🐞 Fixed: Retry Policy's
shouldAttemptRetryOnResponse
was synchronous which would not allow async token updates. - 🐞 Fixed: Retry Policy would only trigger once when using
HttpClientWithInterceptor
. - 🐞 Fixed: Retry Policy would use the
http
Response class, which would force plugin users to add http plugin separately. - 🧪 Experimental:
badCertificateCallback
allows you to use self-signing certificates.
- ✨ Added: RetryPolicy. It allows to attempt retries on a request when an exception occurs or when a condition from the response is met.
- 🐞 Fixed: URI type urls not concatenating parameters.
- ✨ Added: Unit testing for a few of the files.
- 🛠 Changed: Android and iOS projects both in the plugin and the example now use Kotlin/Swift.
- 🛠 Changed: Android projects both in the plugin and the example now use AndroidX namespaces.
- 🐞 Fixed: Last ' ' character was not removed from parametized URLs.
- 🐞 Fixed: Duplicate GET parameters when using
get
.
- 🐞 Fixed: HTTP Methods have misaligned parameters. Now they are called via named parameters to avoid type mismatch exceptions when being used.
- ✨ Added: Query Parameters to GET requests, it allows you to set proper parameters without having to add them to the URL beforehand.
- 🛠 Changed: Documentation for the example to include the new Query Parameters usage.
- ✨ Added: Documentation for the example.
- 🐞 Fixed: All the warnings regarding plugin publication.
- ✨ Added: Initial plugin implementation.
- ✨ Added: Example of usage for the plugin.
- ✨ Added: README.md and LICENSE files.