feat(encoding): use an extension for encoding, which allow a specific handler to disable compression if needed #3534
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Type
Feature
PR Checklist
Overview
This PR aims to have better control of the compression middleware.
Actually the compression middleware will always encode the response once it used, however there is some case where we don't want compression, some middleware force the accept encoding to avoid this, but there is no possibility to prevent compression once it has been calculated.
With this PR, new middleware will have the ability to avoid compression just by inserting a Identity encoding into the
extensions_mut
of the request.Also an user would be able to avoid compression a request by removing this data from the request extension (or setting it to identity)
Also this would allow other middleware that are after the compression middleware to still correctly handle the compression without end user needing to take care of the middleware order
Will finalize this PR if feature is accepted