@Override
    public Feign internalBuild() {
      final ResponseHandler responseHandler =
          new ResponseHandler(
              logLevel,
              logger,
              decoder,
              errorDecoder,
              dismiss404,
              closeAfterDecode,
              decodeVoid,
              responseInterceptorChain());
      MethodHandler.Factory<Object> methodHandlerFactory =
          new SynchronousMethodHandler.Factory(
              client,
              retryer,
              requestInterceptors,
              responseHandler,
              logger,
              logLevel,
              propagationPolicy,
              new RequestTemplateFactoryResolver(encoder, queryMapEncoder),
              options);
      return new ReflectiveFeign<>(
          contract, methodHandlerFactory, invocationHandlerFactory, () -> null);
    }
Returns a new instance of an HTTP API, defined by annotations in the {@link Feign Contract},
for the specified {@code target}. You should cache this result.
core/src/main/java/feign/Feign.java