Altering default HTTP client configuration

    The above example sets of readTimeout property of the class.

    If you wish to have a separate configuration per client then there a couple of options. You can configure Service Discovery manually in application.yml and apply per-client configuration:

    Manually configuring HTTP services

    1. micronaut:
    2. http:
    3. services:
    4. urls:
    5. - http://foo1
    6. - http://foo2

    Then simply inject the named client configuration:

    Injecting an HTTP client

    You can also simply define a bean that extends from and ensuring that the javax.inject.Named annotation is used to name it appropriately:

    Defining an HTTP client configuration bean

    1. @Named("twitter")
    2. @Singleton
    3. public TwitterHttpClientConfiguration(ApplicationConfiguration applicationConfiguration) {
    4. super(applicationConfiguration);
    5. }

    Injecting an HTTP client

    Alternatively if you are not using service discovery then you can use the configuration member of @Client to refer to a specific type:

    Injecting an HTTP client

    1. @Client(value="https://api.twitter.com/1.1",
    2. configuration=TwitterHttpClientConfiguration.class)
    3. RxHttpClient httpClient;

    If you have a client that needs to handle a significant number of requests then you can benefit from enabling HTTP client connection pooling. The following configuration will enable pooling for the client:

    1Enables the pool
    2Sets the maximum number of connections in the pool

    See the API for ConnectionPoolConfiguration for details on available options to configure the pool.