The project uses two techniques: Rewrite engine and Representational State Transfer. Although it is not mandatory, these are often used collectively.
A description of the general principles of Rewrite engine and Representational State Transfer can be found in project Simple_OOP_REST
Rewriting and REST can be used as well object oriented as functional.
This shall not be a discussion about the advantages and disadvantages of OOP.
Providing a classless version is just a proof of concept.
For a project like this, one would probably
prefer Object Oriented Programming (see link above) for readability reasons
while for a pure technical API it could be worth thinking about a classless solution.
Prerequsites and result should be identical.