Jumat, 01 Juni 2012

PHP - JSON Webservice

Web Services adalah sebuah layanan yang disediakan sebuah sistem untuk meningkatkan kolaborasi antar sistem.

Webservice disediakan oleh suatu sistem, misalkan sebuah website yang menyediakan layanan kepada sistem yang lain.


Komunikasi antar sistem tersebut menggunakan sebuah format yang bersifat universal, sehingga walaupun sistem yang berhubungan adalah berbeda platform, sistem operasi maupun berbeda bahasa pemrograman akan tetap bisa saling komunikasi.

Isi webservice berupa data atau informasi yang diminta oleh client dalam bentuk sebuah format yang bersifat universal (JSON atau XML).

Sedangkan Yang dibutuhkan Untuk membuat sebuah webservice adalah sebuah webserver seperti Apache atau lightpd, apabila ada pemrosesan data maka diperlukan sebuah bahasa pemrograman atau server side scripting yang kemudian mengubah hasil pengelolahan data tersebut menjadi format JSON atau XML.

Misalkan terdapat sebuah sistem yang menyediakan webservice *nilai tukar uang* untuk client (contoh: aplikasi desktop, blog, website portal, dll) atau siapa saja yang secara bebas bisa mendapatkan data berbagai macam nilai tukar uang terkini.

Sebuah sistem dapat menyediakan Webservice dengan menggunakan bahasa pemrograman apa saja seperti PHP/Java/Ruby/ C/Phtyon/Basic yang penting webservice tersebut dapat diakses melalui protokol HTTP.

Sedangkan client atau pemakai webservice tersebut dapat menggunakan bahasa pemrograman apa saja seperti PHP/Javascript/ Java/Ruby/C/Phtyon atau apa saja dan tidak harus sama dengan bahasa pemrograman yang dipakai oleh penyedia Webservice. Yang penting client tersebut dapat melakukan request HTTP dan dapat melakukan parsing format JSON atau XML.

Pada posting ini Webservice yang akan dibuat adalah sebuah simple webservice menggunakan PHP dan 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.

PHP dipilih karena sebuah Server Side Scripting yang populer untuk membuat website menjadi dinamis dan memilik fitur untuk mengubah data menjadi format JSON.

Workflow Webservice yang akan dibuat adalah seperti gambar dibawah ini:



A. WEBSERVICE PADA SISI SERVER

Dibawah ini adalah Script PHP pada server yang menyediakan layanan Webservice 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. WEBSERVICE PADA SISI CLIENT

Dibawah ini adalah Script PHP pada Client untuk melakukan request ke webservice, kemudian melakukan parsing isi JSON.
$json = file_get_contents('http://www.xxx.com/webservice.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 webservice yang diakses adalah http://www.xxx.com/webservice.php?from=ID&to=US kemudian melakukan parsing format data JSON berdasarkan return  yang diberikan Webservice menggunakan function builtup php bernama json_decode.

5 komentar: