Awesome Open Source
Awesome Open Source

Guideline for using PHP MVC REST API

What is REST API?

A REST API (also known as RESTful API) is an application programming interface (API or web API) that conforms to the constraints of REST architectural style and allows for interaction with RESTful web services. REST stands for representational state transfer and was created by computer scientist Roy Fielding.

An API is a set of definitions and protocols for building and integrating application software. It’s sometimes referred to as a contract between an information provider and an information user—establishing the content required from the consumer (the call) and the content required by the producer (the response). For example, the API design for a weather service could specify that the user supply a zip code and that the producer reply with a 2-part answer, the first being the high temperature, and the second being the low.


Simply, the framework will route requests to the correct controller and model. It will do this by analysing request URI for the controller name and the request type (be it POST, PUT, GET, etc.). It will then do some sanity checks, before initialising a new controller and model object and calling the correct method on the controller.


Add a new route

For creating a new route you should open Route.php file from Router directory.

There is already exist some examples in the file which you can use them as you need.


$router->get('/home', '[email protected]');

$router->post('/home', '[email protected]');

$router->get('/', function() {
    echo 'Welcome ';

For getting parameters follow below example:


$router->get('/:name', function($param) {
    echo 'Welcome ' . $param['name'];

For example, when I use this url "" I will get following output.

Welcome afgprogrammer

It's just a Piece of cake :)

If you want to send the POST requests follow below example:

$router->post('/:name', function($param) {
    echo 'Welcome ' . $param['name'];

Database Connection

Consider that for using database you should edit config.php file before start using database.

For getting a database connection, you can use below sample in Model directory:


use MVC\Model;

class ModelsHome extends Model {

    public function getAllUser() {
        $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user");
          $query->row : return 1 row
          $query->rows : return all rows
          $query->num_rows : return rows count
        return $query->rows;

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Php (392,071
Api (21,971
Rest Api (8,086
Framework (6,621
Mvc (2,401
Php Framework (779
Mvc Framework (544
Mvc Architecture (391
Php72 (253
Related Projects