REST constraints

REST is defined by six constraints, as shown in the following diagram. One of them is optional:

Each of these constraints enforce a design decisionĀ for the serviceĀ that is to be followed. If it is not followed, the service can't be denoted as RESTful. Let's discuss these constraints one by one.