In this chapter, we will cover the Representational State Transfer (REST) software architectural style, as described in Roy Fielding's PhD dissertation. You may find a brief discussion on HTTP before getting into the details of REST. Once the base is set, we will be ready for the next step. We will then discuss the set of constraints, the main components, and the abstractions that make a software system RESTful. Here is the list of topics covered in this chapter:
The REST architectural style
Introducing HTTP
The evolution of RESTful web services
The core architectural elements of a RESTful system
Description and discovery of RESTful web services
Java tools and frameworks for building RESTful web services