-
-
Notifications
You must be signed in to change notification settings - Fork 6.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Java][Feign] Expose response headers for feign client #10507
[Java][Feign] Expose response headers for feign client #10507
Conversation
This new property indicates if the feign client should expose the response headers on the API class.
@hugo-ma-alves thanks for the PR. Have you considered the "usual" approach by adding an additional with the "WithHttpInfo" suffix to obtain HTTP headers, status code, etc ? For usual, I mean other clients (e.g. C#, Ruby, etc) have adopted such approach. |
…tor. Creates a new feign operation with the suffix WithHttpInfo, this operation returns the response encapsulated in a HttpResponse class. The HttpResponse class contains the decoded body and the response headers
…tor. Generate samples
…tor. Generate docs
@wing328 Thanks for the tip, I haven't checked the c# generator. I refactored the code to use the same approach as the C# generator. After pushing the changes I get this error on Circle CI: Can you force a new build? |
Restarted. Let's see how it goes. |
LGTM but I've not tested it locally |
Thanks |
Hello
The objective of this PR is to add the possibility of exposing the response Headers of the request on the feign clients.
This is useful for some situations where the client needs to access information that it is contained on the response headers, for example, headers related with pagination, or resource location after creating a new resource.
I've created a new property called "exposeResponseHeaders", that by default is false, so if it is not defined we keep the same behavior as we have now.
If this property is active the response is wrapped in a new class HttpResponse. This class contains the headers map and the body decoded by jackson to the correct type.
Example of a generated client:
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
(5.3.0),6.0.x
@wing328
@bbdouglas (2017/07) @sreeshas (2017/08) @jfiala (2017/08) @lukoyanov (2017/09) @cbornet (2017/09) @jeff9finger (2018/01) @karismann (2019/03) @Zomzog (2019/04) @lwlee2608 (2019/10) @nmuesch (2021/01)