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
Komentar
Posting Komentar