Routing & Requests¶
The request type makes the difference!¶
A typical project setup will have of a frontend application that requests something and a backend that retrieves this data from the database and returns it to the frontend application.
Many Single Page Applications (SPA) and Progressive Web Apps (PWA) nowadays are programmed in JavaScript and use the JSON format to communicate between the frontend and backend. Typically, the frontend app will want to do a number of things:
Get data for an existing entry from the backend
Create or insert a new entry, e.g. add a new item to the to-do or shopping list
Update an existing entry
and finally delete an item from the database
The idea behind a RESTful Api is to define endpoints (URLs) that the frontend application can
communicate with to get the job done. But instead of defining separate URLs for every
operation needed (/api/get/entry
, /api/save/entry
, /api/delete/entry
) or passing
an action as request parameter (?action=save
) it uses HTTP Request types to make clear,
if an entry should be retrieved, inserted, updated or deleted.
Same URL - different actions!¶
Most of the time you even have the same URL for every operation - but depending on the type of request and the request-body passed, different operations are executed:
Method |
URL |
Request body / payload |
typical operation |
---|---|---|---|
|
|
(none) |
Get entry with uid [1] from database |
|
|
{"title":"Update!", "text":"nice"} |
Update full entry with uid [1] in database |
|
|
{"text":"fine"} |
Update parts of entry with uid [1] in database |
|
|
(none) |
Delete entry with uid [1] in database |
|
|
{"title":"New!", "text":"someone"} |
Insert a new entry in database |
Hint
In many cases, the backend will not make a difference between a PUT
and PATCH
request.
Both are intended to update existing data. But if you are interested in the details, you
can find a good explanation on this page.
Route a request to endpoints¶
The whole deal is about getting a certain HTTP Request Type "connected" to a Controller and method of your Api that will then take care of the rest: Retrieving, updating, inserting or deleting data.
There are two basic ways to accomplish this task: