Tutorial simple Web Service dengan PHP

Perangkat yang dibutuhkan :

1.       PC/laptop

2.       Aplikasi XAMPP atau sejenisnya

3.       Aplikasi Notepade++ atau sejenisnya

4.       Postman – REST Client

 


Ikuti dengan seksama tahapan-tahapannya :

1.       Buat folder di : XAMPP à  htdocs, dengan nama php-service-app

 

 

2.       Buat tiga folder di dalam folder php-service-app antara lain :

·         Config

·         Controller

·         Core


3.       Lakukan coding pada notepade++ lalu simpan di folder php-service-app dengan nama index.php

 

<?php

 

ini_set('display_errors', 1);

error_reporting(E_ALL);

 

require __DIR__."/core/Bootstrap.php";

 

4.       Lanjutkan coding kemudian simpan di folder confg dengan nama Routes.php

 

<?php

 

$routes = [

                '/users' => 'Users.php',

                '/' => 'Home.php',

];

 

?>

 

5.       Lanjutkan coding kemudian simpan di folder controller dengan nama Home.php

 

<?php

 

$url = $_SERVER['REQUEST_URI'];

 

//if use folder path

$urlArr = explode("index.php", $url);

if (count($urlArr) >= 2) {

                $url = $urlArr[1];

}

 

//if use php -S localhost:8000

if(strpos($url,"/") !== 0){

                $url = "/$url";

}

 

//untuk menghandle url /

if($url == '/' && $_SERVER['REQUEST_METHOD'] == 'GET') {

                echo json_encode(array('service_name' => 'PHP Service App', 'status' => 'Running'));

                }

 

6.       Lanjutkan coding kemudian simpan di folder controller dengan nama Users.php

 

<?php

 

$url = $_SERVER['REQUEST_URI'];

 

//if use folder path

$urlArr = explode("index.php", $url);

if (count($urlArr) >= 2) {

                $url = $urlArr[1];

}

 

//if use php -S localhost:8000

if(strpos($url,"/") !== 0){

                $url = "/$url";

}

 

//untuk menghandle url /users

if($url == '/users' && $_SERVER['REQUEST_METHOD'] == 'GET') {

                $users = array(

                                array('id' => 1, 'name' => 'Sumatrana', 'email' => 'sumatrana@gmail.com', 'address' => 'Padang', 'gender'=> 'Laki-Laki'),

                                array('id' => 2, 'name' => 'Jawarianto', 'email' => 'jawarianto@gmail.com', 'address' => 'Cimahi', 'gender'=> 'Laki-Laki'),

                                array('id' => 3, 'name' => 'Kalimantanio', 'email' => 'kalimantanion@gmail.com', 'address' => 'Samarinda', 'gender'=> 'Laki-Laki'),

                                array('id' => 4, 'name' => 'Sulawesiani', 'email' => 'sulawesiani@gmail.com', 'address' => 'Makasar', 'gender'=> 'Perempuan'),

                                array('id' => 5, 'name' => 'Papuani', 'email' => 'papuani@gmail.com', 'address' => 'Jayapura', 'gender'=> 'Perempuan'),

                );

                echo json_encode($users);

}

 

//untuk menghandle url/users{ID}

if(preg_match("/users\/([0-9])+/", $url, $matches) && $_SERVER['REQUEST_METHOD'] == 'GET'){

                $users = array(

                                '1' => array('id' => 1, 'name' => 'Sumatrana', 'email' => 'sumatrana@gmail.com', 'address' => 'Padang', 'gender'=> 'Laki-Laki'),

                                '2' => array('id' => 2, 'name' => 'Jawarianto', 'email' => 'jawarianto@gmail.com', 'address' => 'Cimahi', 'gender'=> 'Laki-Laki'),

                                '3' => array('id' => 3, 'name' => 'Kalimantanio', 'email' => 'kalimantanion@gmail.com', 'address' => 'Samarinda', 'gender'=> 'Laki-Laki'),

                                '4' => array('id' => 4, 'name' => 'Sulawesiani', 'email' => 'sulawesiani@gmail.com', 'address' => 'Makasar', 'gender'=> 'Perempuan'),

                                '5' => array('id' => 5, 'name' => 'Papuani', 'email' => 'papuani@gmail.com', 'address' => 'Jayapura', 'gender'=> 'Perempuan'),

                );

                $user = $users[$matches[1]];

               

                echo json_encode($user);

}

?>

 

7.       Lanjutkan coding kemudian simpan di folder core dengan nama Bootstrap.php

 

<?php

 

require __DIR__.'/Router.php';

require __DIR__.'/../config/Routes.php';

 

 

$router = new Router;

$router->setRoutes($routes);

 

$url = $_SERVER['REQUEST_URI'];

require __DIR__."/../controller/".$router->getFilename($url);

 

?>

 

8.       Lanjutkan coding kemudian simpan di folder core dengan nama Router.php

 

<?php

 

class Router {

 

                private $routes = [];

               

                function setRoutes(Array $routes) {

                                $this->routes = $routes;

                }

               

                function getFilename(string $url) {

                                foreach($this->routes as $route => $file) {

                                                if(strpos($url, $route) !== false){

                                                                return $file;

                                                }

                                }

                }

}

 

?>

 

9.       Start Apche dan MYSql di XAMPP

 


10.   Lakukan pengecekan metode GET di chrome melalui postman dengan url

http://localhost/php-service-app/index.php/

 


 

11.   Kemudian lanjutkan metode GET untuk pengecekan mencari data user dengan url

http://localhost/php-service-app/index.php/users


 


SELAMAT MENCOBA 😊

 


Komentar

Postingan populer dari blog ini

KONSEP, KELEBIHAN, KEKURANGAN CONTAINERIZATION BERSERTA TEKNOLOGI DAN STUDI KASUS CONTAINERIZATION

Mengapa Harus Belajar Cloud Computing ?

Setting Up VM and Domain