REST (Representational State Transfer) is an architectural style for building web APIs that use HTTP as the underlying protocol. It defines a set of constraints and best practices for designing web APIs, including the use of HTTP methods to represent the different actions that can be performed on a resource.
The HTTP methods supported by REST are:
- `GET`: The `GET` method is used to retrieve a representation of a resource. It is a safe and idempotent method, which means that it does not have any side effects and can be called multiple times without changing the state of the resource.
- `POST`: The `POST` method is used to create a new resource. It is not safe or idempotent, because it can have side effects and can create a new resource on each request.
- `PUT`: The `PUT` method is used to update a resource. It is not safe, but it is idempotent because it can be called multiple times and the result will be the same as if it were called once.
- `DELETE`: The `DELETE` method is used to delete a resource. It is not safe or idempotent, because it can have side effects and can delete the resource on each request.
In addition to these methods, REST also supports the `PATCH` method, which is used to update only a part of a resource.
These HTTP methods are often used in combination with HTTP status codes to indicate the success or failure of a request. For example, a `200 OK` status code might be returned for a successful `GET` request, while a `404 Not Found` status code might be returned for a failed `GET` request.
It is worth noting that REST is just one way of designing web APIs, and there are other architectural styles and approaches that can be used. However, REST has become a widely adopted standard for building web APIs, and it is supported by many tools and frameworks.