Consume RESTful Web Services in Java using RestTemplate

This post demonstrates how to use Spring’s RestTemplate to consume RESTful web services in Java. The codes used are used in a SOA or Microservices context but the key code snippet is about RestTemplate.

3 Maven Projects

There are 3 Maven projects used for this post:

  1. common-dto-api
    • This contains all Data Transfer Objects (DTOs) used, in this case, to exchange data between a config server and a client service.
  2. com-turreta-soademo-configserver
    • This represents the config server.
    • For this demo, it is configured to run on port 8080.
  3. com-turreta-soademo-clientservice
    • This represents the client service that consumes (RESTful) services available on the config server
    • For this demo, it is configured to run on port 8081.
    • It has a single @RestController which you can test if the two applications work nicely with each other. See Demo Test section below.

Remote Service to Test RestTemplate

Our config server provides a RESTful web service for our client to consume using RestTemplate.

Our Client Service

Our client service has one @RestController. The important lines are lines 24-27 which enable us to perform HTTP POST using RestTemplate.


This post demonstrates the use of HTTP POST using RestTemplate.Here are code snippets when using the other 3 important HTTP methods.




Demo Test

Download the Codes

The codes are available on GitHub.com and are 3 Maven projects in a single repository. You may need to build them individually first starting with the DTO project. Please see Build/Install Maven Projects in Separate Directors in Travis CI via GitHub

Download from


Karl San Gabriel

Karl San Gabriel

Professional Software Developer