All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zalando.riptide.HttpBuilder Maven / Gradle / Ivy

package org.zalando.riptide;

import org.springframework.http.client.AsyncClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.scheduling.concurrent.ConcurrentTaskExecutor;

import javax.annotation.Nullable;
import java.net.URI;
import java.util.concurrent.ExecutorService;
import java.util.function.Supplier;

public interface HttpBuilder {

    static HttpConfigurer simpleRequestFactory(final ExecutorService executor) {
        return builder -> {
            final SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
            factory.setTaskExecutor(new ConcurrentTaskExecutor(executor));
            builder.requestFactory(factory);
        };
    }

    HttpBuilder requestFactory(AsyncClientHttpRequestFactory requestFactory);

    HttpBuilder defaultConverters();

    HttpBuilder converters(Iterable> converters);

    HttpBuilder converter(HttpMessageConverter converter);

    HttpBuilder baseUrl(@Nullable String baseUrl);

    HttpBuilder baseUrl(@Nullable URI baseUrl);

    HttpBuilder baseUrl(Supplier baseUrlProvider);

    HttpBuilder urlResolution(@Nullable UrlResolution resolution);

    HttpBuilder defaultPlugins();

    HttpBuilder plugins(Iterable plugins);

    HttpBuilder plugin(Plugin plugin);

    HttpBuilder configure(HttpConfigurer configurer);

    Http build();
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy