public static final class HystrixFeign.Builder extends Feign.Builder
| Constructor and Description |
|---|
Builder() |
doNotCloseAfterDecode, exceptionPropagationPolicy, queryMapEncoder, target, targetpublic 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 Feign.Builderpublic HystrixFeign.Builder contract(Contract contract)
contract in class Feign.Builderpublic Feign build()
build in class Feign.Builderpublic HystrixFeign.Builder logLevel(Logger.Level logLevel)
logLevel in class Feign.Builderpublic HystrixFeign.Builder client(Client client)
client in class Feign.Builderpublic HystrixFeign.Builder retryer(Retryer retryer)
retryer in class Feign.Builderpublic HystrixFeign.Builder logger(Logger logger)
logger in class Feign.Builderpublic HystrixFeign.Builder encoder(Encoder encoder)
encoder in class Feign.Builderpublic HystrixFeign.Builder decoder(Decoder decoder)
decoder in class Feign.Builderpublic HystrixFeign.Builder mapAndDecode(ResponseMapper mapper, Decoder decoder)
mapAndDecode in class Feign.Builderpublic HystrixFeign.Builder decode404()
decode404 in class Feign.Builderpublic HystrixFeign.Builder errorDecoder(ErrorDecoder errorDecoder)
errorDecoder in class Feign.Builderpublic HystrixFeign.Builder options(Request.Options options)
options in class Feign.Builderpublic HystrixFeign.Builder requestInterceptor(RequestInterceptor requestInterceptor)
requestInterceptor in class Feign.Builderpublic HystrixFeign.Builder requestInterceptors(Iterable<RequestInterceptor> requestInterceptors)
requestInterceptors in class Feign.BuilderCopyright © 2012–2019 OpenFeign. All rights reserved.