REST is acronym for REpresentational State Transfer.
It is architectural style for distributed hypermedia systems and was first presented by Roy Fielding in 2000.
REST says web applicaitons should use HTTP as it was envisoned or the way it was started.
Should use htpp verbs for getting, saving and modifying data.
GET - Should be use to lookup or select data.
POST - Should be used to create, save new recrods.
PUT - Should be used to modify/update record.
DELETE - Should be used to delete a record.
RESTful APIs means applying REST and adhering to constaints defined for it.
REST has following constaraints that makes a RESTful -
1. Uniform interface - A resource in system should have only one logical URI, and then should provide way to fetch related or additional data. It’s always better to synonymise a resource with a web page. All resources should be accessible through a common approach such as HTTP GET.
2. Client–server - Client application and server application must be able to evolve separately without any dependency
on each other. Client should know only resource URIs and that’s all.
3. Stateless - Server will not store anything about latest HTTP request client made. It will treat each and every request as new. No session, no history.
Client is responsible for managing the state of application.
4. Cacheable - Caching can be implemented server side or client side. Can improve performance.
5. Layered system - Supports layered architecture. Develop apis ondifferent layers, client cannot confirm whether it is connected directly to the end server, or to an intermediary along the way.
6. Code on demand (optional) - Majorly REST works with static data in return i.e.e XML or JSON. But it can also retunr executable code. This is optional.
Refer - https://restfulapi.net/rest-architectural-constraints/