Friday, March 15, 2019

Membuat API menggunakan PHP

API adalah sebuah singkat dari Aplication Programming Interface. Secara sederhana API adalah  sebuah layanan atau sebuah jembatan agar antar aplikasi dapat saling berkomunikasi atau bertukar data.

Agar antar aplikasi dapat  komunikasi diperlukan  sebuah format pertukaran data yang bersifat universal, sehingga walaupun aplikasi yang berhubungan adalah berbeda platform, sistem operasi maupun berbeda bahasa pemrograman akan tetap saling memahami.

Format pertukaran data  universal yang biasa digunakan adalah  JSON atau XML. membuat API menggunakan XML dapat dilihat di artikel PHP XML Web Service

Misalkan terdapat sebuah aplikasi yang menyediakan API *nilai tukar uang* yang dapat digunakan oleh  aplikasi yang lain (misalkan aplikasi desktop, web, mobile, dan lain-lain)

Sebuah API dapat menggunakan bahasa pemrograman apa saja seperti PHP/Java/Ruby/ C/Phtyon/Basic dan API tersebut dapat diakses melalui protokol HTTP.

Sedangkan aplikasi client atau pengguna  dapat menggunakan bahasa pemrogramanseperti PHP/Javascript/ Java/Ruby/C/Phtyon atau apa saja dan tidak harus sama dengan bahasa pemrograman yang dipakai oleh penyedia API.  Yang penting Aplikasi Client tersebut dapat melakukan request HTTP dan dapat melakukan parsing format JSON atau XML.

Pada posting ini API yang akan dibuat adalah sebuah simple API menggunakan PHP dengan format pertukaran data  menggunan JSON mengenai *nilai tukar uang*.

JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa Pemprograman JavaScript, Standar ECMA-262 Edisi ke-3 - Desember 1999.

Apabil bilan di gambarkan skema nya akan seperti ini, pada digambar dibawah ini API berada ditengah atau sebagai perantara Aplikasi Client dengan Aplikasi Internal. 


A. API  PADA SISI PENYEDIAN / SERVER

Dibawah ini adalah Script PHP pada server yang menyediakan layanan Webservice API yang akan memproses request kemudian menghasilkan JSON sebagai hasil dari pemrosesan request.
$from = $_GET['from'];
$to = $_GET['to'];
 
/* 1 rupiah = ? */
$dataCurr['ID']['US'] = '8500';
$dataCurr['ID']['JP'] = '700';
$dataCurr['ID']['AU'] = '7000';
$dataCurr['ID']['SG'] = '5000';

$data['from'] = $from;
$data['to'] = $to;
$data['value'] = $dataCurr[$from][$to];
$data['status'] = 'success';

$dataJson = json_encode($data);

echo $dataJson;
Pada Script diatas proses yang pertama dilakukan adalah menerima request beruapa variable from dan to.

Kemudian proses selanjutnya melakukan peroses mencocokan data *nilai tukar uang* yang diminta client dan melakukan perubahan format data yang dihasilkan PHP menjadi format JSON menggunakan fungsi json bernama json_encode.

B.  PADA SISI CLIENT METODE GET

Dibawah ini adalah Script PHP pada Client untuk melakukan request ke API, kemudian melakukan parsing isi JSON.
$json = file_get_contents('http://www.xxx.com/api.php?from=ID&to=US');  
$data = json_decode($json);

if($data->status == 'success') { 
 echo 'DARI MATA UANG '.$data->from;    
 echo 'KE MATA UANG '.$data->to;
 echo 'NILAI TUKAR '.$data->value; 
}
Proses client diatas yang pertama adalah melakukan request http ke alamat webservice berserta variabel url yang diperlukan.

Pada contoh diatas API yang diakses berada di alamat http://www.xxx.com/api.php?from=ID&to=US kemudian melakukan parsing format data JSON berdasarkan return  yang diberikan Webservice menggunakan function builtup php bernama json_decode.


B.  PADA SISI CLIENT METODE POST

Dibawah ini adalah Script PHP pada Client untuk melakukan request ke API menggunakan metod POST , kemudian melakukan parsing isi JSON.
/* client akses API menggunakan metode post */

/* menyiapkan data yang akan dikirim */
$data = array(
  'from' => 'ID',
  'to' => 'US',
 );
$postString = http_build_query($data, '', '&');


/* membuka koneksi ke API tujuan */
$url = 'http://192.168.1.3/testing/api.php';

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);

curl_close($ch);


/* mengurai data */
$data = json_decode($json);

if($data->status == 'success') { 
  echo 'DARI MATA UANG '.$data->from.'
';    
  echo 'KE MATA UANG   '.$data->to.'
';
  echo 'NILAI TUKAR    '.$data->value.''; 
}

Berikut ini adalah video demostrasi membuat API




Artikel yang berkaitan : 

No comments:

Post a Comment