Package feign.hystrix

Class HystrixFeign.Builder

  • Enclosing class:
    HystrixFeign

    public static final class HystrixFeign.Builder
    extends feign.Feign.Builder
    • Constructor Detail

      • Builder

        public Builder()
    • 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​(java.lang.Class<T> apiType,
                            java.lang.String url,
                            T fallback)
        Like 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 {
           &#64;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 class feign.Feign.Builder
      • contract

        public HystrixFeign.Builder contract​(feign.Contract contract)
        Overrides:
        contract in class feign.Feign.Builder
      • build

        public feign.Feign build()
        Overrides:
        build in class feign.Feign.Builder
      • logLevel

        public HystrixFeign.Builder logLevel​(feign.Logger.Level logLevel)
        Overrides:
        logLevel in class feign.Feign.Builder
      • client

        public HystrixFeign.Builder client​(feign.Client client)
        Overrides:
        client in class feign.Feign.Builder
      • retryer

        public HystrixFeign.Builder retryer​(feign.Retryer retryer)
        Overrides:
        retryer in class feign.Feign.Builder
      • logger

        public HystrixFeign.Builder logger​(feign.Logger logger)
        Overrides:
        logger in class feign.Feign.Builder
      • encoder

        public HystrixFeign.Builder encoder​(feign.codec.Encoder encoder)
        Overrides:
        encoder in class feign.Feign.Builder
      • decoder

        public HystrixFeign.Builder decoder​(feign.codec.Decoder decoder)
        Overrides:
        decoder in class feign.Feign.Builder
      • mapAndDecode

        public HystrixFeign.Builder mapAndDecode​(feign.ResponseMapper mapper,
                                                 feign.codec.Decoder decoder)
        Overrides:
        mapAndDecode in class feign.Feign.Builder
      • decode404

        public HystrixFeign.Builder decode404()
        Overrides:
        decode404 in class feign.Feign.Builder
      • errorDecoder

        public HystrixFeign.Builder errorDecoder​(feign.codec.ErrorDecoder errorDecoder)
        Overrides:
        errorDecoder in class feign.Feign.Builder
      • options

        public HystrixFeign.Builder options​(feign.Request.Options options)
        Overrides:
        options in class feign.Feign.Builder
      • requestInterceptor

        public HystrixFeign.Builder requestInterceptor​(feign.RequestInterceptor requestInterceptor)
        Overrides:
        requestInterceptor in class feign.Feign.Builder
      • requestInterceptors

        public HystrixFeign.Builder requestInterceptors​(java.lang.Iterable<feign.RequestInterceptor> requestInterceptors)
        Overrides:
        requestInterceptors in class feign.Feign.Builder