PHP Classes

PHP REST API Example: Example API that performs CRUD operations

Recommend this page to a friend!
  Info   View files Example   View files View files (75)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2023-10-31 (2 months ago) RSS 2.0 feedNot enough user ratingsTotal: 85 This week: 1All time: 9,969 This week: 108Up
Version License PHP version Categories
php-crud-rest-api 1.0.0The PHP License5PHP 5, Web services, Design Patterns
Description 

Author

This package provides an example API that performs CRUD operations.

It shows how to register routes for the API URLs so specific controller classes can handle the requests.

The package can run the API by processing the HTTP requests to the registered endpoint URLs and generating API call responses using view scripts.

Picture of Hicri
  Performance   Level  
Name: Hicri <contact>
Classes: 23 packages by
Country: Turkey Turkey
Innovation award
Innovation award
Nominee: 3x

Example

<?php


require_once __DIR__ . '/vendor/autoload.php';
require_once
__DIR__ . '/Controllers/Login.php';
require_once
__DIR__ . '/Controllers/Item.php';



require_once
__DIR__ . '/jwt/vendor/autoload.php';

require_once
__DIR__ . '/models/Database.php';
require_once
__DIR__ . '/Control.php';






// Create Router instance
$router = new \Bramus\Router\Router();

$router->set404(function () {
   
header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
    echo
'404, route not found!';
});


$router->get('/', function() {
    echo
'Home Page';
});



/* Login / All - Single - Register - Login Update - Login Delete */


$router->post('/login', 'login@index');
$router->post('/login/all', 'login@all');
$router->post('/login/single', 'login@single');
$router->post('/login/register', 'login@register');
$router->post('/login/update', 'login@update');
$router->post('/login/delete', 'login@delete');


/* Item / All - Single - Create - Update - Delete */


$router->post('/item/all', 'Item@all');
$router->post('/item/single', 'Item@single');
$router->post('/item/create', 'Item@create');
$router->post('/item/update', 'Item@update');
$router->post('/item/delete', 'Item@delete');






$router->run();





?>


Details

PHP- CRUD - Rest API

Single file PHP script that adds a REST API to a MySQL database.

Requirements

- PHP 7.0 or higher with PDO drivers enabled for one of these database systems: - MySQL 5.6 / MariaDB 10.0 or higher for spatial features in MySQL

Configuration

Edit the following lines in the bottom of the file "login.php" and "Item.php":

$vt = $this->Database(
    "Database",
    "localhost",
    "stable",
    "root",
    ""
);


Features

The following features are supported:

- JWT installment - ElastichSearch V2

LOGIN CRUD

The example login table has only a a few fields:

post  
=======
/login     
/login/all  
/login/single
/login/register
/login/update
/login/delete

The CRUD + List operations below act on this table.

Login

To read a record from this table the request can be written in URL format as:

POST /login

Headers

Content-Type : application/json

Body-raw / Json request

{
    "email" : "deneme@gmail.com",
    "password" : "123456",
    "apikey" : "12"

}

Where "1" is the value of the primary key of the record that you want to read. It will return:

{
    "status":1,
    "jwt":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJsb2NhbGhvc3QiLCJpYXQiOjE2NDY5NDE2MjMsIm5iZiI6MTY0Njk0MTYzMywiZXhwIjoxNjQ2OTQ1MjIzLCJhdWQiOiJteWxvZ2luIiwiZGF0YSI6eyJpZCI6IjEiLCJlbWFpbCI6ImRlbmVtZUBnbWFpbC5jb20iLCJteWFwaWtleSI6IjEyIn19.5ZFqcYSADVaG0BoFBNtxl5nfjCR7d3Wn8JZ0ra-PcJ8","message":"Succesful"

}

On login operations.

Create

To read a record from this table the request can be written in URL format as:

POST /login/register

Headers

Content-Type : application/json
Authorization : Login JWt 

Body-raw / Json request

{
    "email":"example@example.com",
    "password":"123456",
    "apikey":"555",
    "status":"1",
    "myapi":"12",
    "secret":"stableDeneme"

}

Where "1" is the value of the primary key of the record that you want to read. It will return:

{

    "status":1,
    "message":"Succesful"

}

On create operations.

Read - Single

To read a record from this table the request can be written in URL format as:

POST /login/single

Headers

Content-Type : application/json
Authorization : Login JWT

Body-raw / Json request

{
    "id" : "11",
    "myapi" : "12",
    "secret" : "stableDeneme"

}

Where "1" is the value of the primary key of the record that you want to read. It will return:

{
    "status":1,
    "data":{
        "login_id":"11",
        "login_email":"example@example.com",
        "login_pass":"7c4a8d09ca3762af61e59520943dc26494f8941b",
        "login_apikey":"555",
        "login_status":"1"
        },
    "message":"Succesful"
}

On single read operations.

List

To read a record from this table the request can be written in URL format as:

POST /login/all

Headers

Content-Type : application/json
Authorization : Login JWT

Body-raw / Json request

{
    "myapi" : "12",
    "secret" : "stableDeneme"

}

Where "1" is the value of the primary key of the record that you want to read. It will return:

{
    "status": 1,
    "data": [
        {
            "login_id": "1",
            "login_email": "deneme@gmail.com",
            "login_pass": "7c4a8d09ca3762af61e59520943dc26494f8941b",
            "login_apikey": "12",
            "login_status": "1"
        },
        {
            "login_id": "10",
            "login_email": "tamamd?r@gmail",
            "login_pass": "7c4a8d09ca3762af61e59520943dc26494f8941b",
            "login_apikey": "998",
            "login_status": "1"
        },
        {
            "login_id": "11",
            "login_email": "example@example.com",
            "login_pass": "7c4a8d09ca3762af61e59520943dc26494f8941b",
            "login_apikey": "555",
            "login_status": "1"
        }
    ],
            "message": "Succesful"
}

On read operations.

Update

To read a record from this table the request can be written in URL format as:

POST /login/update

Headers

Content-Type : application/json
Authorization : Login JWT

Body-raw / Json request

{
     "id": "11",
     "email": "example@example.com",
     "password": "555666777",
     "apikey": "555",
     "status": "1",
     "myapi":"12",
     "secret":"stableDeneme"
}

Where "1" is the value of the primary key of the record that you want to read. It will return:

{

    "status": 1,
    "message": "Succesful"

}

On update operations.

Delete

To read a record from this table the request can be written in URL format as:

POST /login/delete

Headers

Content-Type : application/json
Authorization : Login JWT

Body-raw / Json request

{
     "id" : "10",
     "myapi" : "12",
     "secret" : "stableDeneme"
}

Where "1" is the value of the primary key of the record that you want to read. It will return:

{

    "status": 1,
    "message": "Succesful"

}

On delete operations.


  Files folder image Files  
File Role Description
Files folder image.idea (3 files)
Files folder imagerestAPI (5 files, 6 directories)
Files folder imagesql (1 file)
Accessible without login Plain text file app.txt Doc. Documentation
Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files  /  .idea  
File Role Description
  Accessible without login Plain text file modules.xml Data Auxiliary data
  Accessible without login Plain text file php rest.iml Data Auxiliary data
  Accessible without login Plain text file vcs.xml Data Auxiliary data

  Files folder image Files  /  restAPI  
File Role Description
Files folder imageControllers (2 files)
Files folder imagehelpers (1 file)
Files folder imagejwt (2 files, 1 directory)
Files folder imagemodels (3 files)
Files folder imagevendor (1 file, 2 directories)
Files folder imageviews (10 files)
  Accessible without login Plain text file .htaccess Data Auxiliary data
  Accessible without login Plain text file composer.json Data Auxiliary data
  Accessible without login Plain text file composer.lock Data Auxiliary data
  Plain text file Control.php Class Class source
  Accessible without login Plain text file index.php Example Example script

  Files folder image Files  /  restAPI  /  Controllers  
File Role Description
  Plain text file Item.php Class Class source
  Plain text file Login.php Class Class source

  Files folder image Files  /  restAPI  /  helpers  
File Role Description
  Accessible without login Plain text file tool_helper.php Example Example script

  Files folder image Files  /  restAPI  /  jwt  
File Role Description
Files folder imagevendor (1 file, 2 directories)
  Accessible without login Plain text file composer.json Data Auxiliary data
  Accessible without login Plain text file composer.lock Data Auxiliary data

  Files folder image Files  /  restAPI  /  jwt  /  vendor  
File Role Description
Files folder imagecomposer (11 files)
Files folder imagefirebase (1 directory)
  Accessible without login Plain text file autoload.php Aux. Auxiliary script

  Files folder image Files  /  restAPI  /  jwt  /  vendor  /  composer  
File Role Description
  Accessible without login Plain text file autoload_classmap.php Aux. Auxiliary script
  Accessible without login Plain text file autoload_namespaces.php Aux. Auxiliary script
  Accessible without login Plain text file autoload_psr4.php Aux. Auxiliary script
  Plain text file autoload_real.php Class Class source
  Plain text file autoload_static.php Class Class source
  Plain text file ClassLoader.php Class Class source
  Accessible without login Plain text file installed.json Data Auxiliary data
  Accessible without login Plain text file installed.php Aux. Auxiliary script
  Plain text file InstalledVersions.php Class Class source
  Accessible without login Plain text file LICENSE Lic. License text
  Accessible without login Plain text file platform_check.php Aux. Auxiliary script

  Files folder image Files  /  restAPI  /  jwt  /  vendor  /  firebase  
File Role Description
Files folder imagephp-jwt (3 files, 1 directory)

  Files folder image Files  /  restAPI  /  jwt  /  vendor  /  firebase  /  php-jwt  
File Role Description
Files folder imagesrc (5 files)
  Accessible without login Plain text file composer.json Data Auxiliary data
  Accessible without login Plain text file LICENSE Lic. License text
  Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files  /  restAPI  /  jwt  /  vendor  /  firebase  /  php-jwt  /  src  
File Role Description
  Plain text file BeforeValidException.php Class Class source
  Plain text file ExpiredException.php Class Class source
  Plain text file JWK.php Class Class source
  Plain text file JWT.php Class Class source
  Plain text file SignatureInvalidException.php Class Class source

  Files folder image Files  /  restAPI  /  models  
File Role Description
  Plain text file Database.php Class Class source
  Plain text file itemmodel.php Class Class source
  Plain text file usermodel.php Class Class source

  Files folder image Files  /  restAPI  /  vendor  
File Role Description
Files folder imagebramus (1 directory)
Files folder imagecomposer (11 files)
  Accessible without login Plain text file autoload.php Aux. Auxiliary script

  Files folder image Files  /  restAPI  /  vendor  /  bramus  
File Role Description
Files folder imagerouter (7 files, 4 directories)

  Files folder image Files  /  restAPI  /  vendor  /  bramus  /  router  
File Role Description
Files folder imagedemo-multilang (2 files)
Files folder imagedemo (2 files)
Files folder imagesrc (1 directory)
Files folder imagetests (2 files)
  Accessible without login Plain text file .php_cs.dist Example Example script
  Accessible without login Plain text file .travis.yml Data Auxiliary data
  Accessible without login Plain text file CHANGELOG.md Data Auxiliary data
  Accessible without login Plain text file composer.json Data Auxiliary data
  Accessible without login Plain text file LICENSE Lic. License text
  Accessible without login Plain text file phpunit.xml.dist Data Auxiliary data
  Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files  /  restAPI  /  vendor  /  bramus  /  router  /  demo-multilang  
File Role Description
  Accessible without login Plain text file .htaccess Data Auxiliary data
  Plain text file index.php Class Class source

  Files folder image Files  /  restAPI  /  vendor  /  bramus  /  router  /  demo  
File Role Description
  Accessible without login Plain text file .htaccess Data Auxiliary data
  Accessible without login Plain text file index.php Example Example script

  Files folder image Files  /  restAPI  /  vendor  /  bramus  /  router  /  src  
File Role Description
Files folder imageBramus (1 directory)

  Files folder image Files  /  restAPI  /  vendor  /  bramus  /  router  /  src  /  Bramus  
File Role Description
Files folder imageRouter (1 file)

  Files folder image Files  /  restAPI  /  vendor  /  bramus  /  router  /  src  /  Bramus  /  Router  
File Role Description
  Plain text file Router.php Class Class source

  Files folder image Files  /  restAPI  /  vendor  /  bramus  /  router  /  tests  
File Role Description
  Accessible without login Plain text file bootstrap.php Aux. Auxiliary script
  Plain text file RouterTest.php Class Class source

  Files folder image Files  /  restAPI  /  vendor  /  composer  
File Role Description
  Accessible without login Plain text file autoload_classmap.php Aux. Auxiliary script
  Accessible without login Plain text file autoload_namespaces.php Aux. Auxiliary script
  Accessible without login Plain text file autoload_psr4.php Aux. Auxiliary script
  Plain text file autoload_real.php Class Class source
  Plain text file autoload_static.php Class Class source
  Plain text file ClassLoader.php Class Class source
  Accessible without login Plain text file installed.json Data Auxiliary data
  Accessible without login Plain text file installed.php Aux. Auxiliary script
  Plain text file InstalledVersions.php Class Class source
  Accessible without login Plain text file LICENSE Lic. License text
  Accessible without login Plain text file platform_check.php Aux. Auxiliary script

  Files folder image Files  /  restAPI  /  views  
File Role Description
  Accessible without login Plain text file item-create.php Aux. Auxiliary script
  Accessible without login Plain text file item-delete.php Aux. Auxiliary script
  Accessible without login Plain text file item-single.php Aux. Auxiliary script
  Accessible without login Plain text file item-update.php Aux. Auxiliary script
  Accessible without login Plain text file login-create.php Aux. Auxiliary script
  Accessible without login Plain text file login-delete.php Aux. Auxiliary script
  Accessible without login Plain text file login-list.php Aux. Auxiliary script
  Accessible without login Plain text file login-single.php Aux. Auxiliary script
  Accessible without login Plain text file login-update.php Aux. Auxiliary script
  Accessible without login Plain text file login.php Aux. Auxiliary script

  Files folder image Files  /  sql  
File Role Description
  Accessible without login Plain text file stable.sql Data Auxiliary data

 Version Control Unique User Downloads Download Rankings  
 100%
Total:85
This week:1
All time:9,969
This week:108Up