public static final class HystrixFeign.Builder extends Feign.Builder
capabilities, closeAfterDecode, decoder, dismiss404, encoder, errorDecoder, invocationHandlerFactory, logger, logLevel, options, propagationPolicy, queryMapEncoder, requestInterceptors, responseInterceptor, retryer| Constructor and Description |
|---|
Builder() |
target, targetaddCapability, doNotCloseAfterDecode, enrich, exceptionPropagationPolicy, queryMapEncoder, responseInterceptorpublic HystrixFeign.Builder setterFactory(SetterFactory setterFactory)
public <T> T target(Target<T> target, T fallback)
target(Class, String, Object)public <T> T target(Target<T> target, FallbackFactory<? extends T> fallbackFactory)
target(Class, String, FallbackFactory)public <T> T target(Class<T> apiType, String url, T fallback)
Feign.newInstance(Target), except with fallback support.
Fallbacks are known values, which you return when there's an error invoking an http method. For example, you can return a cached result as opposed to raising an error to the caller. To use this feature, pass a safe implementation of your target interface as the last parameter. Here's an example:
// When dealing with fallbacks, it is less tedious to keep interfaces small.
interface GitHub {
@RequestLine("GET /repos/{owner}/{repo}/contributors")
List<String> contributors(@Param("owner") String owner, @Param("repo") String repo);
}
// This instance will be invoked if there are errors of any kind.
GitHub fallback = (owner, repo) -> {
if (owner.equals("Netflix") && repo.equals("feign")) {
return Arrays.asList("stuarthendren"); // inspired this approach!
} else {
return Collections.emptyList();
}
};
GitHub github = HystrixFeign.builder()
...
.target(GitHub.class, "https://api.github.com", fallback);
target(Target, Object)public <T> T target(Class<T> apiType, String url, FallbackFactory<? extends T> fallbackFactory)
#target(Class, String, T), except you can inspect a source exception before
creating a fallback object.public Feign.Builder invocationHandlerFactory(InvocationHandlerFactory invocationHandlerFactory)
invocationHandlerFactory in class BaseBuilder<Feign.Builder>public HystrixFeign.Builder contract(Contract contract)
contract in class BaseBuilder<Feign.Builder>public Feign build()
build in class Feign.Builderpublic HystrixFeign.Builder logLevel(Logger.Level logLevel)
logLevel in class BaseBuilder<Feign.Builder>public HystrixFeign.Builder client(Client client)
client in class Feign.Builderpublic HystrixFeign.Builder retryer(Retryer retryer)
retryer in class BaseBuilder<Feign.Builder>public HystrixFeign.Builder logger(Logger logger)
logger in class BaseBuilder<Feign.Builder>public HystrixFeign.Builder encoder(Encoder encoder)
encoder in class BaseBuilder<Feign.Builder>public HystrixFeign.Builder decoder(Decoder decoder)
decoder in class BaseBuilder<Feign.Builder>public HystrixFeign.Builder mapAndDecode(ResponseMapper mapper, Decoder decoder)
mapAndDecode in class BaseBuilder<Feign.Builder>public HystrixFeign.Builder decode404()
decode404 in class BaseBuilder<Feign.Builder>public HystrixFeign.Builder dismiss404()
dismiss404 in class BaseBuilder<Feign.Builder>public HystrixFeign.Builder errorDecoder(ErrorDecoder errorDecoder)
errorDecoder in class BaseBuilder<Feign.Builder>public HystrixFeign.Builder options(Request.Options options)
options in class BaseBuilder<Feign.Builder>public HystrixFeign.Builder requestInterceptor(RequestInterceptor requestInterceptor)
requestInterceptor in class BaseBuilder<Feign.Builder>public HystrixFeign.Builder requestInterceptors(Iterable<RequestInterceptor> requestInterceptors)
requestInterceptors in class BaseBuilder<Feign.Builder>Copyright © 2012–2022 OpenFeign. All rights reserved.