Home » PHP » Cara Membuat Rest API dengan PHP Native dan MySQL

Cara Membuat Rest API dengan PHP Native dan MySQL

Published by Ade Kurniawan on

php rest api

Sebelum membuat contoh rest api menggunakan php native terlebih dahulu mari kita bahas apa itu REST API.

Rest adalah singkatan dari Representational State Transfer yang dibuat oleh ilmuan komputer Roy Fielding. Rest merupakan sebuah panduan dalam mendesain dan mengembangkan arsitektur WWW (World Wide Web).

Sedangkan API (Application Programming Interface) merupakan sekumpulan rule atau aturan yang didefinisikan untuk menciptakan komunikasi antar application, program atau device.

Apa itu Rest Api?

Rest API adalah mekanisme yang memperbolehkan sebuah application atau device untuk dapat mengakses resource dari application atau device lain. Application atau device yang mengakses resource disebut client, sedangkan application atau device yang berisi resource adalah server.

Dengan memahami konsep sederhana ini maka saat membuat Rest API berarti kamu telah membuat sesuatu yang memfasilitasi terjadinya komunikasi antar Application atau device.

Sesuatu ini dapat saja dibuat dengan bahasa pemrograman php atau lainnya. Device atau application disisi client dapat juga memiliki bahasa pemrograman yang berbeda dengan yang digunakan server.

Sebagai contoh saat ini kamu sedang membuat aplikasi android. Data yang akan ditampilkan pada android disimpan di database MySQL. Aplikasi android dibuat dengan bahasa pemrograman java sedangkan untuk mengakses data server dibutuhkan bahasa pemrograman php dan syntax MySQL.

Maka Rest API akan menjadi sesuatu yang dedefinisikan untuk komunikasi resource berupa text antar application atau device yang berbeda tersebut. Selanjutnya dengan kemampuan yang kamu miliki sebagai programmer maka tidak menutup komungkinan resource lain seperti gambar, audio dan file yang ada di server(Komputer Server) dapat dengan mudah di akses oleh device client(android) menggunakan Rest API yang kamu buat.

Sebelum masuk ke tahap pengembangan rest yang powerfull silahkan pahami terlebih dahulu contoh sederhana php rest api di bawah ini. Selamat mencoba….

Langkah Pembuatan File Rest API menggunakan PHP

Untuk membuat rest api silahkan ikuti langkah berikut:

1. Siapkan database

Buatah terlebih dahulu database MysQL di phpmyadmin dan tambahkan tabel karyawan.

Strukur tabel karyawan

CREATE TABLE `karyawan` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `nama` varchar(50) NOT NULL,
 `jenis_kelamin` enum(‘Laki-laki’,’Perempuan’) NOT NULL,
 `alamat` varchar(100) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1

2. Siapkan file koneksi php

Seperti halnya membuat crud dengan php yang membutuhkan file koneksi. Membuat file php rest api juga memutuhkan koneksi.

<?php
$hostname = "localhost";
$database = "indonetsource";
$username = "root";
$password = "";

$connect = mysqli_connect($hostname, $username, $password, $database);
// script cek koneksi   

if (!$connect) {
    die("Koneksi Tidak Berhasil: " . mysqli_connect_error());
}

3. Buatlah file rest api

phprestapi.php

<?php
require_once "koneksi.php";

	if(function_exists($_GET['function'])) {
			$_GET['function']();
		}	

	function get_karyawan()
	{
		global $connect;		
		$query = $connect->query("SELECT * FROM karyawan");				
		while($row=mysqli_fetch_object($query))
		{
			$data[] =$row;
		}
		$response=array(
							'status' => 1,
							'message' =>'Success',
							'data' => $data
						);
		header('Content-Type: application/json');
		echo json_encode($response);
	}	
	
	function get_karyawan_id()
	{
		global $connect;
		if (!empty($_GET["id"])) {
			$id = $_GET["id"];		
		}				
		$query ="SELECT * FROM karyawan WHERE id= $id";		
		$result = $connect->query($query);
		while($row = mysqli_fetch_object($result))
		{
			$data[] = $row;
		}				
		if($data)
		{
		$response = array(
							'status' => 1,
							'message' =>'Success',
							'data' => $data
						);					
		}else {
			$response=array(
							'status' => 0,
							'message' =>'No Data Found'
						);
		}

		
		header('Content-Type: application/json');
		echo json_encode($response);
		 
	}

	function insert_karyawan()
		{
			global $connect;	
			$check = array('id' => '', 'nama' => '', 'jenis_kelamin' => '', 'alamat' => '');
			$check_match = count(array_intersect_key($_POST, $check));
			if($check_match == count($check)){
			
					$result = mysqli_query($connect, "INSERT INTO karyawan SET
					id = '$_POST[id]',
					nama = '$_POST[nama]',
					jenis_kelamin = '$_POST[jenis_kelamin]',
					alamat = '$_POST[alamat]'");
					
					if($result)
					{
						$response=array(
							'status' => 1,
							'message' =>'Insert Success'
						);
					}
					else
					{
						$response=array(
							'status' => 0,
							'message' =>'Insert Failed.'
						);
					}
			}else{
				$response=array(
							'status' => 0,
							'message' =>'Wrong Parameter'
						);
			}
			header('Content-Type: application/json');
			echo json_encode($response);
		}

	function update_karyawan()
		{
			global $connect;
			if (!empty($_GET["id"])) {
			$id = $_GET["id"];		
		}	
			$check = array('nama' => '', 'jenis_kelamin' => '', 'alamat' => '');
			$check_match = count(array_intersect_key($_POST, $check));			
			if($check_match == count($check)){
			
		        $result = mysqli_query($connect, "UPDATE karyawan SET					
					nama = '$_POST[nama]',
					jenis_kelamin = '$_POST[jenis_kelamin]',
					alamat = '$_POST[alamat]' WHERE id = $id");
		   
				if($result)
				{
					$response=array(
						'status' => 1,
						'message' =>'Update Success'						
					);
				}
				else
				{
					$response=array(
						'status' => 0,
						'message' =>'Update Failed'						
					);
				}
			}else{
				$response=array(
							'status' => 0,
							'message' =>'Wrong Parameter',
							'data'=> $id
						);
			}
			header('Content-Type: application/json');
			echo json_encode($response);
		}

	function delete_karyawan()
	{
		global $connect;
		$id = $_GET['id'];
		$query = "DELETE FROM karyawan WHERE id=".$id;
		if(mysqli_query($connect, $query))
		{
			$response=array(
				'status' => 1,
				'message' =>'Delete Success'
			);
		}
		else
		{
			$response=array(
				'status' => 0,
				'message' =>'Delete Fail.'
			);
		}
		header('Content-Type: application/json');
		echo json_encode($response);
	}
 ?>

Cara Memanggil Data REST Server Menggunakan Postman

Dengan menggunakan ke 2 file di atas kita telah membuat REST API dan untuk menggunakannya rest api dipanggil menggunakan metode GET dan POST. Untuk dapat mengakses file server disini kita jadikan postman sebagai client yang akan mengakses data server.

1. Testing – Insert Data menggunakan POST

http://localhost/indonetsource/php/restapiphp/phprestapi.php?function=insert_karyawan

insert data rest dengan postman

2. Testing Rest API GET

Untuk memanggil semua data karyawan silahkan gunakan url

http://localhost/indonetsource/php/restapiphp/phprestapi.php?function=get_karyawan

php rest api get semua data
Get Semua Data Karyawan

3. Get Karyawan By Id

http://localhost/indonetsource/php/restapiphp/phprestapi.php?function=get_karyawan_id&id=1

Get Data By Id Rest API php Native
Get Data By Id

4. Update Data

http://localhost/indonetsource/php/restapiphp/phprestapi.php?function=update_karyawan&id=1

update data
Update Data

5. Delete Data

http://localhost/indonetsource/php/restapiphp/phprestapi.php?function=delete_karyawan&id=6

Delete Data
Delete Data

Demikianlah tutorial php rest api semoga dapat membantu pembaca sekalian dalam memahami Rest API.


0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *