0% menganggap dokumen ini bermanfaat (0 suara)
7 tayangan

P7 - API Web Servis

Diunggah oleh

Hera Vira
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
7 tayangan

P7 - API Web Servis

Diunggah oleh

Hera Vira
Hak Cipta
© © All Rights Reserved
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 21

Pemrograman Perangkat Bergerak

Rest API dengan PHP dan MySql


D3 Teknik Informatika
Definisi
● RESTful API / REST API merupakan implementasi dari API (Application Programming Interface).
● REST (Representional State Transfer) adalah suatu arsitektur metode komunikasi yang menggunakan
protokol HTTP untuk pertukaran data dan metode ini sering diterapkan dalam pengembangan aplikasi.
● Dimana tujuannya adalah untuk menjadikan sistem yang memiliki performa yang baik, cepat dan mudah
untuk di kembangkan (scale) terutama dalam pertukaran dan komunikasi data.
● Rest API atau sering juga disebut dengan istilah API saja sering digunakan sebagai penghubung antara
front–end dan back–end aplikasi. Front–end sendiri aplikasi interface yang digunakan user atau
pengguna aplikasi.
● Contoh dari front-end aplikasi yaitu aplikasi android dan iOS.
● Back–end aplikasi yang digunakan administrator untuk manajemen data.
● Sehingga dengan Rest API data dari front-end ke back-end ataupun sebaliknya dapat diolah seperti
menampilkan, menambahkan, mengubah dan menghapus data.
4 komponen RESTful API
● URL Design
● HTTP Verbs
● HTTP Response Code
● Format Response
URL Design
● RESTful API diakses menggunakan protokol HTTP. Penamaan dan struktur URL yang konsisten akan menghasilkan API yang
baik dan mudah untuk dimengerti developer.
URL API biasa disebut endpoint dalam pemanggilannya. Contoh penamaan URL / endpoint yang baik adalah seperti berikut:
○ /users
○ /users/1234
○ /users/1234/photos
○ /users/1234/photos/abc
HTTP Verbs
● Setiap request yang dilakukan terdapat metode yang dipakai agar server mengerti apa yang sedang di request client,
diantaranya yang umum dipakai adalah:
○ GET
GET adalah metode HTTP Request yang paling simpel, metode ini digunakan untuk membaca atau mendapatkan data
dari sumber.
Contoh :
GET /users : Mengembalikan daftar user
GET /users/1234 : Mengembalikan data user dengan ID 1234
○ POST
POST adalah metode HTTP Request yang digunakan untuk membuat data baru dengan menyisipkan data dalam body
saat request dilakukan.
Contoh :
POST /users : Membuat data user baru
○ PUT
PUT adalah metode HTTP Request yang biasanya digunakan untuk melakukan update data resource.
Contoh :
PUT /users/1234 : Mengupdate data user dengan ID 1234
○ DELETE
DELETE adalah metode HTTP Request yang digunakan untuk menghapus suatu data pada resource.
Contoh :
DELETE /users/1234 : Menghapus data user dengan ID 1234
HTTP Response Code
● HTTP response code adalah kode standarisasi dalam menginformasikan hasil request kepada client.
Secara umum terdapat 3 kelompok yang biasa kita jumpai pada RESTful API yaitu:
○ 2XX : adalah response code yang menampilkan bahwa request berhasil.
○ 4XX : adalah response code yang menampilkan bahwa request mengalami kesalahan pada sisi client.
○ 5XX : adalah response code yang menampilkan bahwa request mengalami kesalahan pada sisi server.
● Dan berikut ini adalah response code yang biasa digunakan pada REST:
○ 200 OK Response code ini menandakan bahwa request yang dilakukan berhasil.
○ 201 Created Response code ini menandakan bahwa request yang dilakukan berhasil dan data telah dibuat. Kode ini
digunakan untuk mengkonfirmasi berhasilnya request PUT atau POST.
○ 400 Bad Request Response code ini menandakan bahwa request yang dibuat salah atau data yang dikirim tidak ada.
○ 401 Unauthorized Response code ini menandakan bahwa request yang dibuat membutuhkan authentication sebelum
mengakses resource.
○ 404 Not Found Response Code ini menandakan bahwa resource yang di dipanggil tidak ditemukan.
○ 405 Method Not Allowed Response code ini menandakan bahwa request endpoint ada tetapi metode HTTP yang
digunakan tidak diizinkan.
○ 409 Conflict Response code ini menandakan bahwa request yang dibuat terdapat duplikasi, biasanya informasi yang
dikirim sudah ada sebelumnya.
○ 500 Internal Server Error Response code ini menandakan bahwa request yang dilakukan terdapat kesalahan pada sisi
server atau resource.
Format Response
● Setiap request yang dilakukan client akan menerima data response dari server, response tersebut biasanya berupa data XML
ataupun JSON. Setelah mendapatkan data response tersebut barulah client bisa menggunakannya dengan cara memparsing
data tersebut dan diolah sesuai kebutuhan.
Contoh:
XML
○ HTTP/1.1 200 OK
○ Date: Sat, 06 Oct 2001 23:20:04 GMT
○ Server: Apache.1.3.12 (Unix)
○ Connection: close
○ Content-Type: text/xml
○ Content-Length: 124

JSON
○ GET /users/1234
○ HTTP/1.1 200 OK
○ Content-Type: application/vnd.api+json
Contoh RESTful API
● Endpoint
Dalam membuat API, endpoint adalah istilah yang digunakan untuk menyebutkan URL pada API yang sedang dibangun.
Misalnya kita punya URL http://belajaraplikasi.com/auth/token, kita bisa menyebutnya endpoint /auth/token. Format endpoint
dapat disesuaikan dengan kebutuhan.

Route Request Method Body Request Description

/mahasiswa GET – Get all mahasiswa data

/mahasiswa/{id} GET – Get a single mahasiswa data

/mahasiswa POST id, nim, jk, alamat, jurusan Insert new mahasiswa record into database

/mahasiswa/{id} POST nim, jk, alamat, jurusan Update mahasiswa record into database.

/mahasiswa/{id} DELETE – Delete particular mahasiswa record from database


Contoh RESTful API
● Database
/*Table structure for table `tbl_mahasiswa` */
Buatlah database dengan nama db_kampus, lalu eksekusi perintah
sql dibawah ini untuk membuat table. CREATE TABLE `tbl_mahasiswa` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nim` char(8) DEFAULT NULL,
`nama` varchar(200) DEFAULT NULL,
`jk` char(1) DEFAULT NULL,
`alamat` text,
`jurusan` varchar(200) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

/*Data for the table `tbl_mahasiswa` */

insert into
`tbl_mahasiswa`(`id`,`nim`,`nama`,`jk`,`alamat`,`jurusan
`) values
(1,'15119999','muhammad al fatih','L','Jl. P. Puger 2 No
19','Informatika'),
(2,'16119212','Fatimah','P','Jl. Ringin Raya','Sistem
Informasi');
Contoh RESTful API
● Koneksi
Terlebih dahulu membuat folder untuk tempat projek dengan nama api lalu membuat file koneksi.php didalam folder
tersebut, file koneksi.php bertujuan untuk membuat koneksi ke database. Berikut sintaksnya:

<?php
// Membuat variabel, ubah sesuai dengan nama host dan database pada hosting
$host = "localhost";
$user = "root";
$pass = "";
$db = "db_kampus";

//Menggunakan objek mysqli untuk membuat koneksi dan menyimpan nya dalam variabel $mysqli
$mysqli = new mysqli($host, $user, $pass, $db);

?>
Contoh RESTful API
● Mempercantik URL dengan .htaccess
Buatlah file .htaccess dan tuliskan beberapa rule seperti di bawah:

RewriteEngine On # Turn on the rewriting engine


RewriteRule ^mahasiswa/?$ mahasiswa.php [NC,L]
RewriteRule ^mahasiswa/([0-9]+)/?$ mahasiswa.php?id=$1 [NC,L]
Contoh RESTful API
● Method
Selanjutnya kita akan membuat beberapa method untuk mengakses database dan membuat kembalian data dalam format
JSON, Buatlah file method.php dan Berikan sintaks seperti di bawah ini:

<?php public function get_mhs($id=0)


require_once "koneksi.php"; {
class Mahasiswa global $mysqli;
{ $query="SELECT * FROM tbl_mahasiswa";
if($id != 0)
public function get_mhss() {
{ $query.=" WHERE id=".$id." LIMIT 1";
global $mysqli; }
$query="SELECT * FROM tbl_mahasiswa"; $data=array();
$data=array(); $result=$mysqli->query($query);
$result=$mysqli->query($query); while($row=mysqli_fetch_object($result))
while($row=mysqli_fetch_object($result)) {
{ $data[]=$row;
$data[]=$row; }
} $response=array(
$response=array( 'status' => 1,
'status' => 1, 'message' =>'Get Mahasiswa Successfully.',
'message' =>'Get List Mahasiswa Successfully.', 'data' => $data
'data' => $data );
); header('Content-Type: application/json');
header('Content-Type: application/json'); echo json_encode($response);
echo json_encode($response);
} }
Contoh RESTful API
public function insert_mhs() function update_mhs($id)
{ {
global $mysqli; global $mysqli;
$arrcheckpost = array('nim' => '', 'nama' => '', 'jk' => '', 'alamat' => '', 'jurusan' => ''); $arrcheckpost = array('nim' => '', 'nama' => '', 'jk' => '', 'alamat' => '', 'jurusan' => '');
$hitung = count(array_intersect_key($_POST, $arrcheckpost)); $hitung = count(array_intersect_key($_POST, $arrcheckpost));
if($hitung == count($arrcheckpost)){ if($hitung == count($arrcheckpost)){

$result = mysqli_query($mysqli, "INSERT INTO tbl_mahasiswa SET $result = mysqli_query($mysqli, "UPDATE tbl_mahasiswa SET
nim = '$_POST[nim]', nim = '$_POST[nim]',
nama = '$_POST[nama]', nama = '$_POST[nama]',
jk = '$_POST[jk]', jk = '$_POST[jk]',
alamat = '$_POST[alamat]', alamat = '$_POST[alamat]',
jurusan = '$_POST[jurusan]'"); jurusan = '$_POST[jurusan]'
WHERE id='$id'");
if($result)
{ if($result)
$response=array( {
'status' => 1, $response=array(
'message' =>'Mahasiswa Added Successfully.' 'status' => 1,
); 'message' =>'Mahasiswa Updated Successfully.'
} );
else }
{ else
$response=array( {
'status' => 0, $response=array(
'message' =>'Mahasiswa Addition Failed.' 'status' => 0,
); 'message' =>'Mahasiswa Updation Failed.'
} );
}else{ }
$response=array( }else{
'status' => 0, $response=array(
'message' =>'Parameter Do Not Match' 'status' => 0,
); 'message' =>'Parameter Do Not Match'
} );
header('Content-Type: application/json'); }
echo json_encode($response); header('Content-Type: application/json');
} echo json_encode($response);
}
Contoh RESTful API
function delete_mhs($id)
{
global $mysqli;
$query="DELETE FROM tbl_mahasiswa WHERE id=".$id;
if(mysqli_query($mysqli, $query))
{
$response=array(
'status' => 1,
'message' =>'Mahasiswa Deleted Successfully.'
);
}
else
{
$response=array(
'status' => 0,
'message' =>'Mahasiswa Deletion Failed.'
);
}
header('Content-Type: application/json');
echo json_encode($response);
}
}

?>
Contoh RESTful API
● Request Method
Selanjutnya kita akan membuat file mahasiswa.php yang akan diakses oleh endpoint, isi dari file adalah untuk pengecekan
request method yang dilakukan dan menjalankan fungsi pada method.php sesuai dengan request methodnya. Berikut
sintaks nya:

<?php case 'POST':


require_once "method.php"; if(!empty($_GET["id"]))
{
$mhs = new Mahasiswa();
$id=intval($_GET["id"]);
$request_method=$_SERVER["REQUEST_METHOD"]; $mhs->update_mhs($id);
switch ($request_method) { }
case 'GET': else
if(!empty($_GET["id"])) {
{ $mhs->insert_mhs();
}
$id=intval($_GET["id"]);
break;
$mhs->get_mhs($id); case 'DELETE':
} $id=intval($_GET["id"]);
else $mhs->delete_mhs($id);
{ break;
$mhs->get_mhss(); default:
// Invalid Request Method
}
header("HTTP/1.0 405 Method Not Allowed");
break; break;
break;
}
?>
Testing RESTful API
Selanjutnya kita testing API menggunakan POSTMAN seperti berikut:
Testing RESTful API
Selanjutnya kita testing API menggunakan POSTMAN seperti berikut:
Testing RESTful API
Selanjutnya kita testing API menggunakan POSTMAN seperti berikut:
Testing RESTful API
Selanjutnya kita testing API menggunakan POSTMAN seperti berikut:
Testing RESTful API
Selanjutnya kita testing API menggunakan POSTMAN seperti berikut:
Praktikum
Rancang dan Buatlah API Web Servis dari project besar yang dirancang dengan mengikuti langkah dari contoh diatas :
Buat database
● Buat Web Servis menggunakan PHP atau Framework (Laravel, Code Igniter, Python Flask, dan framework lainnya yang
dikuasai)
● Uji Coba Web servis yang dibuat dengan menggunakan Postman atau Web Browser
● Dari langkah-langkah diatas, buatlah Laporan hasil praktikum

Anda mungkin juga menyukai