Package feign.hystrix
Class HystrixFeign.Builder
- java.lang.Object
-
- feign.Feign.Builder
-
- feign.hystrix.HystrixFeign.Builder
-
- Enclosing class:
- HystrixFeign
public static final class HystrixFeign.Builder extends feign.Feign.Builder
-
-
Constructor Summary
Constructors Constructor Description Builder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description feign.Feign
build()
HystrixFeign.Builder
client(feign.Client client)
HystrixFeign.Builder
contract(feign.Contract contract)
HystrixFeign.Builder
decode404()
HystrixFeign.Builder
decoder(feign.codec.Decoder decoder)
HystrixFeign.Builder
encoder(feign.codec.Encoder encoder)
HystrixFeign.Builder
errorDecoder(feign.codec.ErrorDecoder errorDecoder)
feign.Feign.Builder
invocationHandlerFactory(feign.InvocationHandlerFactory invocationHandlerFactory)
HystrixFeign.Builder
logger(feign.Logger logger)
HystrixFeign.Builder
logLevel(feign.Logger.Level logLevel)
HystrixFeign.Builder
mapAndDecode(feign.ResponseMapper mapper, feign.codec.Decoder decoder)
HystrixFeign.Builder
options(feign.Request.Options options)
HystrixFeign.Builder
requestInterceptor(feign.RequestInterceptor requestInterceptor)
HystrixFeign.Builder
requestInterceptors(java.lang.Iterable<feign.RequestInterceptor> requestInterceptors)
HystrixFeign.Builder
retryer(feign.Retryer retryer)
HystrixFeign.Builder
setterFactory(SetterFactory setterFactory)
Allows you to override hystrix properties such as thread pools and command keys.<T> T
target(feign.Target<T> target, FallbackFactory<? extends T> fallbackFactory)
<T> T
target(feign.Target<T> target, T fallback)
<T> T
target(java.lang.Class<T> apiType, java.lang.String url, FallbackFactory<? extends T> fallbackFactory)
Same as#target(Class, String, T)
, except you can inspect a source exception before creating a fallback object.<T> T
target(java.lang.Class<T> apiType, java.lang.String url, T fallback)
LikeFeign.newInstance(Target)
, except withfallback
support.
-
-
-
Method Detail
-
setterFactory
public HystrixFeign.Builder setterFactory(SetterFactory setterFactory)
Allows you to override hystrix properties such as thread pools and command keys.
-
target
public <T> T target(feign.Target<T> target, T fallback)
- See Also:
target(Class, String, Object)
-
target
public <T> T target(feign.Target<T> target, FallbackFactory<? extends T> fallbackFactory)
- See Also:
target(Class, String, FallbackFactory)
-
target
public <T> T target(java.lang.Class<T> apiType, java.lang.String url, T fallback)
LikeFeign.newInstance(Target)
, except withfallback
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);
- See Also:
target(Target, Object)
-
target
public <T> T target(java.lang.Class<T> apiType, java.lang.String url, FallbackFactory<? extends T> fallbackFactory)
Same as#target(Class, String, T)
, except you can inspect a source exception before creating a fallback object.
-
invocationHandlerFactory
public feign.Feign.Builder invocationHandlerFactory(feign.InvocationHandlerFactory invocationHandlerFactory)
- Overrides:
invocationHandlerFactory
in classfeign.Feign.Builder
-
contract
public HystrixFeign.Builder contract(feign.Contract contract)
- Overrides:
contract
in classfeign.Feign.Builder
-
build
public feign.Feign build()
- Overrides:
build
in classfeign.Feign.Builder
-
logLevel
public HystrixFeign.Builder logLevel(feign.Logger.Level logLevel)
- Overrides:
logLevel
in classfeign.Feign.Builder
-
client
public HystrixFeign.Builder client(feign.Client client)
- Overrides:
client
in classfeign.Feign.Builder
-
retryer
public HystrixFeign.Builder retryer(feign.Retryer retryer)
- Overrides:
retryer
in classfeign.Feign.Builder
-
logger
public HystrixFeign.Builder logger(feign.Logger logger)
- Overrides:
logger
in classfeign.Feign.Builder
-
encoder
public HystrixFeign.Builder encoder(feign.codec.Encoder encoder)
- Overrides:
encoder
in classfeign.Feign.Builder
-
decoder
public HystrixFeign.Builder decoder(feign.codec.Decoder decoder)
- Overrides:
decoder
in classfeign.Feign.Builder
-
mapAndDecode
public HystrixFeign.Builder mapAndDecode(feign.ResponseMapper mapper, feign.codec.Decoder decoder)
- Overrides:
mapAndDecode
in classfeign.Feign.Builder
-
decode404
public HystrixFeign.Builder decode404()
- Overrides:
decode404
in classfeign.Feign.Builder
-
errorDecoder
public HystrixFeign.Builder errorDecoder(feign.codec.ErrorDecoder errorDecoder)
- Overrides:
errorDecoder
in classfeign.Feign.Builder
-
options
public HystrixFeign.Builder options(feign.Request.Options options)
- Overrides:
options
in classfeign.Feign.Builder
-
requestInterceptor
public HystrixFeign.Builder requestInterceptor(feign.RequestInterceptor requestInterceptor)
- Overrides:
requestInterceptor
in classfeign.Feign.Builder
-
requestInterceptors
public HystrixFeign.Builder requestInterceptors(java.lang.Iterable<feign.RequestInterceptor> requestInterceptors)
- Overrides:
requestInterceptors
in classfeign.Feign.Builder
-
-