Teknologi web
Perkembangan :
Website adalah kumpulan halaman berisi informasi pada suatu alamat url (bias ip atau dns) yang saling terhubung satu sama lain dan dapat dikases secara public melalui jaringan internet
Ada 4 perkembangan web sampai saat ini, yaitu :
- Web 1.0 static content, hosted on web
- Web 2.0 dynamic contents, ability to internet with web service
- Web 3.0 sematic web, seb service, app to app interctions.
- Web 4.0 electronic agents, ubiquitous web, human and machines interactions
Saat ini kita akan fokus terhadap web 3.0
Web 3.0 = mendesentrasikan service sesuai dengan fungsinya. Misalkan service khusus menangani pencarian dan lain lain.
Contoh :
Sematic web menyesuaikan konten web berdasarkan ketertarikan pengguna
Web service memungkinkan setiap aplikasi dapat berkomunikasi dan bertukar data satu sama lain.
Arsitektur web service
Webservice adalah sebuah metode komunikasi antar aplikasi melalui jaringan
Komunikasi ini menggunakan XML/JSON, SOAP, WSDL, UDDI
Webservice terdiri dari 3 bagian utama
- Service provider
- Service requestor costumer
- Service broker
Web api adalah komunikasi antar interface berdasarkan pada REST
Web api dapat dibuat dan dikembangkan menggunakan Bahasa pemrogramman seperti java, .net, php dll.
Membuat Simple PHP Service APP
Membuat folder di xampp\htdocs\AdityaVR
Buat 3 buah folder dengan nama config, controller dan core
Buat sebuah file index.php di dalam folder AdityaVR
Isi index.php dengan kode dibawah ini :
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
require __DIR__."/core/Bootstrap.php";
?>
Buatlah file Routes.php di dalam folder config, dan isikan dengan kode seperti dibawah ini :
<?php
$routes = [
'/users' => 'Users.php',
'/' => 'Home.php'];
?>
Buat file Home.php di dalam folder controlles dengan kode seperti dibawah ini :
<?php
$url = $_SERVER['REQUEST_URI'];
$urlArr = explode("index.php", $url);
if (count($urlArr) >= 2) {
$url = $urlArr[1];
}
if (strpos($url, "/") !== 0) {
$url = "/$url";
}
if ($url == '/' && $_SERVER['REQUEST_METHOD'] == 'GET') {
echo json_encode(array('service_name' => 'PHP service app', 'status' => 'Running'));
}
?>
Buat juga User.php di dalam folder controller dengan kode seperti di bawah ini :
<?php
$url = $_SERVER['REQUEST_URI'];
$urlArr = explode("index.php",$url);
if (count($urlArr) >= 2) {
# code...
$url = $urlArr[1];
}
if (strpos($url,"/")!==0) {
# code...
$url = "/$url";
}
if ($url == '/users' && $_SERVER['REQUEST_METHOD'] == 'GET') {
$users = array(
array('id' => 1,'name' => 'aditya','email'=>'a1@gmail.com','address'=>'bandung','gender'=>'laki'),
array('id' => 2,'name' => 'vajri','email'=>'a2@gmail.com','address'=>'bandung','gender'=>'laki'),
array('id' => 3,'name' => 'ramadhan','email'=>'a3@gmail.com','address'=>'soreang','gender'=>'laki'),
array('id' => 4,'name' => 'bobi','email'=>'a4@gmail.com','address'=>'gandasoli','gender'=>'laki'),
array('id' => 5,'name' => 'petrik','email'=>'a5@gmail.com','address'=>'cpi','gender'=>'laki'),
array('id' => 6,'name' => 'sendi','email'=>'a6@gmial.com','address'=>'disana','gender'=>'perempuan'),
);
echo json_encode($users);
}
if (preg_match("/users\/([0-9])+/",$url,$matches) && $_SERVER['REQUEST_METHOD'] == 'GET') {
# code...
$users = array(
'1' => array('id' => 1,'name' => 'aditya','email'=>'a1@gmail.com','address'=>'bandung','gender'=>'laki'),
'2' => array('id' => 2,'name' => 'vajri','email'=>'a2@gmail.com','address'=>'bandung','gender'=>'laki'),
'3' => array('id' => 3,'name' => 'ramadhan','email'=>'a3@gmail.com','address'=>'soreang','gender'=>'laki'),
'4' => array('id' => 4,'name' => 'bobi','email'=>'a4@gmail.com','address'=>'gandasoli','gender'=>'laki'),
'5' => array('id' => 5,'name' => 'petrik','email'=>'a5@gmail.com','address'=>'cpi','gender'=>'laki'),
'6' => array('id' => 6,'name' => 'sendi','email'=>'a6@gmial.com','address'=>'disana','gender'=>'perempuan'),
);
$user = $users[$matches[1]];
echo json_encode($user);
}
if (preg_match("/users\/name\/([0-9])+/",$url,$matches) && $_SERVER['REQUEST_METHOD'] == 'GET') {
# code...
$users = array(
'1' => array('id' => 1,'name' => 'aditya'),
'2' => array('id' => 2,'name' => 'vajri'),
'3' => array('id' => 3,'name' => 'ramadhan'),
'4' => array('id' => 4,'name' => 'bobi'),
'5' => array('id' => 5,'name' => 'petrik'),
'6' => array('id' => 6,'name' => 'sendi'),
);
$user = $users[$matches[1]];
echo json_encode($user);
}
if ($url == '/users/name' && $_SERVER['REQUEST_METHOD'] == 'GET') {
$users = array(
array('id' => 1,'name' => 'aditya'),
array('id' => 2,'name' => 'vajri'),
array('id' => 3,'name' => 'ramadhan'),
array('id' => 4,'name' => 'bobi'),
array('id' => 5,'name' => 'petrik'),
array('id' => 6,'name' => 'sendi'),
);
echo json_encode($users);
}
if (preg_match("/users\/email\/([0-9])+/",$url,$matches) && $_SERVER['REQUEST_METHOD'] == 'GET') {
# code...
$users = array(
'1' => array('id' => 1,'email'=>'a1@gmail.com'),
'2' => array('id' => 2,'email'=>'a2@gmail.com','address'=>'bandung','gender'=>'laki'),
'3' => array('id' => 3,'email'=>'a3@gmail.com'),
'4' => array('id' => 4,'email'=>'a4@gmail.com'),
'5' => array('id' => 5,'email'=>'a5@gmail.com'),
'6' => array('id' => 6,'email'=>'a6@gmial.com'),
);
$user = $users[$matches[1]];
echo json_encode($user);
}
if ($url == '/users/email' && $_SERVER['REQUEST_METHOD'] == 'GET') {
$users = array(
array('id' => 1,'email'=>'a1@gmail.com'),
array('id' => 2,'email'=>'a2@gmail.com','address'=>'bandung','gender'=>'laki'),
array('id' => 3,'email'=>'a3@gmail.com'),
array('id' => 4,'email'=>'a4@gmail.com'),
array('id' => 5,'email'=>'a5@gmail.com'),
array('id' => 6,'email'=>'a6@gmial.com'),
);
echo json_encode($users);
}
?>
Dalam kode tersebut akan menampilkan 5 output, yaitu
- /users
- /users/id[0-9]
- /users/name
- /users/name/id[0-9]
- /users/email
Selanjutnya buat file Bootstrap di folder core dengan kode seperti dibawah ini :
<?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);
?>
Yang terakhir buat file Router.php di dalam folder core dengan kode seperti dibawah ini:
<?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;
}
}
}
}
?>
Jalankan aplikasi dengan cara
- Aktifkan xampp
- Buka browser
- Lalu ketikan http://localhost/[nama_folder]/index.php/
Jika berhasil akan terlihat seperti dibawah ini :