Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Tags: tanming1003/feign

Tags

v8.12.1

Toggle v8.12.1's commit message
SynchronousMethodHandler does not wrap exceptions thrown by Decoder#d…

…ecode in decode404 mode

Removing exception wrapping adds flexibility to the interplay of Decoder and ErrorDecoder:
A Decoder can now delegate to an ErrorDecoder and the original ErrorDecoder exception gets
thrown rather than a Feign-specific DecodeException. An example use-case is a Jackson/Gson
implementation of special 404-handling of Optional<Foo> methods: when the Feign client has
decode404() enabled, then the Decoder is in charge of dispatching 404 to Optional#absent
where applicable, or to a delegate ErrorDecoder otherwise; consistent exception handling
requires that the exception produced by the ErrorDecoder does not wrapped.

v8.12.0

Toggle v8.12.0's commit message
Adds Feign.Builder.decode404() to reduce boilerplate for empty semantics

This adds the `Feign.Builder.decode404()` flag which indicates decoders
should process responses with 404 status. It also changes all
first-party decoders (like gson) to return well-known empty values by
default. Further customization is possible by wrapping or creating a
custom decoder.

Prior to this change, we used custom invocation handlers as the way to
add fallback values based on exception or return status. `feign-hystrix`
uses this to return `HystrixCommand<X>`, but the general pattern applies
to anything that has a type representing both success and failure, such
as `Try<X>` or `Observable<X>`.

As we define it here, 404 status is not a retry or fallback policy, it
is just empty semantics. By limiting Feign's special processing to 404,
we gain a lot with very little supporting code.

If instead we opened all codes, Feign could easily turn bad request,
redirect, or server errors silently to null. This sort of configuration
issue is hard to troubleshoot. 404 -> empty is a very safe policy vs
all codes.

Moreover, we don't create a cliff, where folks seeking fallback policy
eventually realize they can't if only given a response code. Fallback
systems like Hystrix address exceptions that occur before or in lieu of
a response. By special-casing 404, we avoid a slippery slope of half-
implementing Hystrix.

Finally, 404 handling has been commonly requested: it has a clear use-
case, and through that value. This design supports that without breaking
compatibility, or impacting existing integrations such as Hystrix or
Ribbon.

See OpenFeign#238 OpenFeign#287

v8.11.0

Toggle v8.11.0's commit message
add HystrixCommand support

fixes OpenFeigngh-189

v8.10.1

Toggle v8.10.1's commit message
Squash changelog version

v8.9.1

Toggle v8.9.1's commit message
Class-level headers from inherited class when method is defined in de…

…claring class

Relates to OpenFeign#266, adds support to have @Header on the parent interface too

v8.10.0

Toggle v8.10.0's commit message
Supports POST without a body parameter

```java
@RequestLine("POST")
String noPostBody();
```

see
http://johnfeng.github.io/blog/2015/06/30/okhttp-updates-post-wouldnt-be-allowed-to-have-null-body/

v8.9.0

Toggle v8.9.0's commit message
Switches body parameter substitution to use encoded parameters

Resolves issue where some characters (+ %..) would end up double decoded if existing in parameters.

Fixes OpenFeign#264

v8.8.1

Toggle v8.8.1's commit message
Merge pull request OpenFeign#267 from Netflix/dont-break-on-processAn…

…notationOnClass

Un-abstracts processAnnotationOnClass so that we don't break api

v8.8.0

Toggle v8.8.0's commit message
Moves off legacy travis containers

v8.7.1

Toggle v8.7.1's commit message
Fixes NPE when apache client rebuffers content

When log level is full, the response body is rebuffered. The Apache
client had a bug where it allowed `toInputStream` to return null. This
fixes that bug and backfills tests for the other two clients.

Fixes OpenFeign#255