[[webmvc-client]] = REST Clients This section describes options for client-side access to REST endpoints. [[webmvc-restclient]] == `RestClient` `RestClient` is a synchronous HTTP client that exposes a modern, fluent API. See xref:integration/rest-clients.adoc#rest-restclient[`RestClient`] for more details. [[webmvc-webclient]] == `WebClient` `WebClient` is a reactive client to perform HTTP requests with a fluent API. See xref:web/webflux-webclient.adoc[WebClient] for more details. [[webmvc-resttemplate]] == `RestTemplate` `RestTemplate` is a synchronous client to perform HTTP requests. It is the original Spring REST client and exposes a simple, template-method API over underlying HTTP client libraries. See xref:integration/rest-clients.adoc[REST Endpoints] for details. [[webmvc-http-interface]] == HTTP Interface The Spring Frameworks lets you define an HTTP service as a Java interface with HTTP exchange methods. You can then generate a proxy that implements this interface and performs the exchanges. This helps to simplify HTTP remote access and provides additional flexibility for to choose an API style such as synchronous or reactive. See xref:integration/rest-clients.adoc#rest-http-interface[REST Endpoints] for details.