***
### What Is the _WebClient_?
_WebClient_ is an interface representing the main entry point for performing web requests.
It was created as part of the Spring Web Reactive module and will be replacing the classic _RestTemplate_ in these scenarios. In addition, the new client is a reactive, non-blocking solution that works over the HTTP/1.1 protocol.
It's important to note that even though it is, in fact, a non-blocking client, and it belongs to the _spring-webflux_ library, the solution **offers support for both synchronous and asynchronous operations**, making it suitable also for applications running on a Servlet Stack.
This can be achieved by blocking the operation to obtain the result. Of course, this practice is not suggested if we're working on a Reactive Stack.
The interface has a single implementation, the _DefaultWebClient_ class.
### Building with Maven
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
```
### Building with Gradle
```groovy
dependencies {
compile 'org.springframework.boot:spring-boot-starter-webflux'
}
```
***
**References**:
- [Spring 5 WebClient](https://www.baeldung.com/spring-5-webclient)