Tags: wacai/feign
Tags
Removes use of internal gson class (OpenFeign#452) Turns out an api was added a very long time ago to do what we do in gson without use of internal apis. See OpenFeign#449
Adds FallbackFactory, allowing access to the cause of a Hystrix fallb… …ack (OpenFeign#443) The cause of the fallback is now logged by default to FINE level. You can programmatically inspect the cause by making your own `FallbackFactory`. In many cases, the cause will be a `FeignException`, which includes the http status. Here's an example of using `FallbackFactory`: ```java // This instance will be invoked if there are errors of any kind. FallbackFactory<GitHub> fallbackFactory = cause -> (owner, repo) -> { if (cause instanceof FeignException && ((FeignException) cause).status() == 403) { return Collections.emptyList(); } else { return Arrays.asList("yogi"); } }; GitHub github = HystrixFeign.builder() ... .target(GitHub.class, "https://api.github.com", fallbackFactory); ```
Adds Hystrix SetterFactory to customize group and command keys (OpenF… …eign#447) This exposes means to customize group and command keys, for example to use non-default conventions from configuration or custom annotation processing. Ex. ```java SetterFactory commandKeyIsRequestLine = (target, method) -> { String groupKey = target.name(); String commandKey = method.getAnnotation(RequestLine.class).value(); return HystrixCommand.Setter .withGroupKey(HystrixCommandGroupKey.Factory.asKey(groupKey)) .andCommandKey(HystrixCommandKey.Factory.asKey(commandKey)); }; api = HystrixFeign.builder() .setterFactory(commandKeyIsRequestLine) ... ``` This also makes the default's more unique to avoid clashing in Hystrix's cache.
Allows query parameters to match on a substring. Ex q=body:{body} (Op… …enFeign#428) This is to help develop apis like Elasticsearch which nest queries in query parameters. Fixes OpenFeign#424
Lower case headers in response and use TreeMap to allow case insensit… …ive access (OpenFeign#418)
PreviousNext