[swift5] adds configuration of response success ranges #13598
Merged
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.
The success range of a HTTP response which defines whether a response should be treated as successful or failed is currently hardcoded in the URLSession / AlamofireImplementations to
200..<300
. There are use cases where users of the generator do not want the request to fail if a response code is outside this range, like e.g. when status code is in 3** range.This PR solves problem 2. described in #13597 by adding a new parameter
successfulStatusCodeRange
toConfiguration
which is injected into response validations for Alamofire and URLSession libraries (not applicable for Vapor). If unchanged the behavior remains the same as before for both librariesThis change is the basis for an implementation of follow redirects in the generator which are currently silently performed but the response data is discarded. I would propose an implementation of follow redirects in a separate PR, this change here is independent of it and has benefits past the scope of just follow redirects, that's why I separated it.
PR checklist
This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
These must match the expectations made by your contribution.
You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example
./bin/generate-samples.sh bin/configs/java*
.For Windows users, please run the script in Git BASH.
master
(6.1.0) (minor release - breaking changes with fallbacks),7.0.x
(breaking changes without fallbacks)Declaration
The program was tested solely for our own use cases, which might differ from yours.
Link to provider information
https://github.com/mercedes-benz