Spring Web Client

WebClient is a reactive client that provides an alternative to the RestTemplate, see the documentation

Using Spring Boot Starter

You can use the starter that will provide an implementation of ClientProvider for WebClient and some basics configurations.

...

generator:
  webclient:
    clients:
      client-one: # client name 
        base-url: http://localhost:8383
        connect-timeout: 1s
        read-timeout: 5s
        write-timeout: 3s
        authentication:
          basic-auth:
            username: name
            password: 123456
        default-headers:
          x-api-key: foo
          User-Agent: my-app
      client-two: # client name 
          base-url: http://localhost:8383
      ...    

Gradle

For Gradle, you need something along the following lines:


    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-webflux' // Spring WebClient
        implementation 'io.github.raphasil.rest-client-generator:webclient-generator-spring-boot-starter:0.0.1'
        annotationProcessor 'io.github.raphasil:webclient-processor:0.0.1'
    }

Maven

For Maven, you need something along the following lines:

<?xml version="1.0" encoding="UTF-8"?>

<project>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-webflux</artifactId>
        </dependency>
        <dependency>
            <groupId>io.github.raphasil.rest-client-generator</groupId>
            <artifactId>webclient-generator-spring-boot-starter</artifactId>
            <version>0.0.1</version>
        </dependency>
    </dependencies>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>                    
                    <annotationProcessorPaths>
                        <path>
                            <groupId>io.github.raphasil.rest-client-generator</groupId>
                            <artifactId>webclient-processor</artifactId>
                            <version>0.0.1</version>
                        </path>
                    </annotationProcessorPaths>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

Updated: