Mengenal nuSOAP part 1 : pengenalan
Assalamu’alaikum
SOAP (Simple Object Access Protocol) adalah standar untuk bertukar pesan-pesan berbasis XML melalui jaringan komputer atau sebuah jalan untuk program yang berjalan pada suatu sistem operasi (OS) untuk berkomunikasi dengan program pada OS yang sama maupun berbeda dengan menggunakan HTTP dan XML sebagai mekanisme untuk pertukaran data.
SOAP menspesifikan secara jelas bagaimana cara untuk meng-encode header HTTP dan file XML sehingga program pada suatu komputer dapat memanggil program pada pada komputer lain dan mengirimkan informasi, dan bagaimana program yang dipanggil memberikan tanggapan.
SOAP adalah protokol ringan yang ditujukan untuk pertukaran informasi struktur pada lingkup desentralisasi, dan terdistribusi. SOAP menggunakan teknologi XML utuk mendefinisikan rangka kerja pemesanan terekstrensi di mana menyediakan konstruksi pesan yang dapat dipertukarkan pada protokol berbeda. Rangka kerja dirancang bebas dari model pemrograman dan spesifikasi implementasi semantik.
Info diatas diambil dari wikipedia (thanx a lot)
Gampangnya SOAP itu protokol (tata cara bicara /bahasa) untuk program-program yang terpisah baik secara lokasi, maupun jenis platform. Jadi secara konsep SOAP itu dibuat untuk menyatukan berbagai macam bahasa pemrograman biar program2 itu bisa berbicara satu sama lain, dengan XML.
Jadi para programmer Bea Cukai itu nggak perlu belajar PHP untuk nerima data dari kita yang diwajibkan lapor data tersebut . Dan yang lebih penting, KITA nggak perlu belajar bahasa .NET yang seperti (no comment…). Untuk saling bertukar informasi (saat ini efektifnya baru kita yang kirim data, kita blom bisa pake data dari mereka, btw tolong konfirmasi lagi yah)
Beruntung buat kita (ya , saya , anda dan semua orang) udah ada library PHP yang cukup mudah untuk bermain-main dengan SOAP , kalau anda masih bilang menggunakan nuSOAP itu rumit, silahkan coba pake cara native, atau hard code sendiri , maka anda akan mengerti kenapa saya memilih NuSOAP (selain tekanan untuk cepat selesai tentunya J )
- Persiapan
Sebelum menggunakan nusoap ada beberapa persiapan yang perlu dilakukan,
Aktifkan modul cURL dan non aktifkan modul php_soap pada instalasi PHP anda bila belum, karena pada beberapa installasi PHP curl tidak diaktifkan secara default (mis. XAMPP)
Caranya:
Cari dan buka file PHP.INI (untuk tiap2 instalasi bisa berbeda)
Lalu search and destroy, eh cari modul php_curl di daftar extension nya
seperti gini :
;extension=php_curl.dll
Dan hilangkan tanda titik-koma di depannya menjadi seperti ini:
extension=php_curl.dll
cari lagi modul php_soap
extension-=php_soap.dll
kali ini tambahkan tanda titik koma di depannya kalau belum ada
;extension=php_soap.dll
Kenapa mesti di otak-atik nih? Ngerepotin aja. hehehe kalau anda nanya kayak gitu, saya coba kasih jawaban:
· Karena Tpsonline menggunakan secure http (https) kita butuh curl untuk mengakomodasi nya, ini disimpulkan dari pengalaman saya ketika mencoba membuat web service di localhost, dan client di komputer yang sama. Semua berjalan lancar sampai saya develop klien tuk tpsonline. Dia error deh, setelah dirunut ternyata butuh curl
· Php_soap di non-aktifkan dengan alasan terjadinya ambiguitas nama fungsi dari nusoap, dengan php_soap. Sebenarnya hal ini dapat dihindari dengan menggunakan alias pada nama fungsi di nusoap.
Persiapan selesai, tinggal 1 lagi yang belum, download dulu paket nusoap disini http://sourceforge.net/projects/nusoap/, atau langsung ke http://downloads.sourceforge.net/nusoap/nusoap-0.7.3.zip?modtime=1194348059&big_mirror=0
- contoh skrip
langsung masuk contoh skrip, gak biasa bahas-bahas teori gitu, hehehe. Kita coba buat coding basic menggunakan nuSOAP, kita akan buat server dan klien nya
pertama-tama kita akan buat server nya dulu, buat apa ada klien kalo nggak ada server J. Btw saya kurang imajinasi jadi bikinnya standar abiss
Server ini membuka sebuah metode SOAP tunggal yang akan mengambil nilai masukan berupa string, dan mengeluarkan hasil berup string pula. Mudah-mudahan komentar dalam kode akan mempermudah anda.
helloworld.php
<?php
// Ambil kode nusoap
require_once(‘nusoap.php’);
// buat instance server
$server = new soap_server;
// daftar kan metode yang bisa diakses
$server->register(‘hello’);
// buat fungsi dari yang berusan didaftarin
function hello($name) {
return ‘Hello, ‘ . $name;
}
// gunakan request untuk mencoba memanggil service yang dibuka
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ”;
$server->service($HTTP_RAW_POST_DATA);
?>
Sekarang untuk klien nya, pertama-tama yang perlu di perhatikan pada saat instansiasi soapclient harus ditulis URL lengkapnya (jangan ampe miss). Kedua-dua ketika memanggil service, parameter pertama adalah nama service. Dan nama service ini CASE-SENSITIVE. Yang terakhir (ketiga-tiga) parameter ke dua dari pemanggilan service adalah array dari parameter yang akan dilanjutkan ke metode dari web service.
<?php
// ambil kode nusoap
require_once('nusoap.php');
// buat instansiasi klien, perhatikan urlnya
$client = new soapclient('http://localhost/nusoap/helloworld.php');
// Panggil metode SOAP dengan parameter nama
$result = $client->call('hello', array('name' => 'Ibnu'));
// Tampilkan hasilnya
print_r($result);
?>
Client di atas hanya berfungsi untuk menampilkan respon dari server,
tapi cukup tuk membantu kita kenal dengan SOAP, yayyyy!!
FYI tulisan ini dibuat berdasarkan manual yang saya buat tuk perusahaan
tercinta, dan mencomot dari sana sini. Thx for your support.
Wassalamu'alaikum
Daftar Pustaka
Waw ada codeigniter, Pembakar Kode??
Kemaren ada yang nanya sama saya tentang Zend framework, kebetulan dia itu masih-masih baru kenal PHP (lah bukannya saya juga?), dia nanya “pak bisa ngajarin saya zend framework nggak?” , ternyata yang ditanya nggak lebih tau dari yang bertanya, akhirnya saya googling sebentar, tanya-tanya temen siapa tau ada yang tau tentang Zend Framework (selanjutnya disebut ZF) ini. Kebetulan ada, sayang nya sedang pulang kampung tuk nikah en nggak bisa kembali tuk waktu yang lumayan
Walhasil, yang bertanya pun agak kecewa lantaran yang ditanya nggak memenuhi standar (wew cupu banget sih gw), dan tutorial yang dikirimkan pun (saya dapet dari temen) ternyata dia dah punya, huhuhu , jadi merasa tumpul nih.
Tapi ada pelajaran yang bisa diambil dari situ. Selama ini saya cuma make Smarty template engine + ADODB database abstraction layer, yang notabene dah lebih dari satu tahun saya geluti. Kenapa nggak mencoba hal baru, at least buat ngilangin bosen selama ini, dengan koding yang itu-itu aja, jadi kyk kurang berkembang. Akhirnya setelah googling untuk membantu beliau, saya coba-coba tuk mencari tau framework PHP (bukan coba-coba melempar manggis yah), dan pilihan jatuuuhhhh keepaaadaaaa
Kenapa?, karena:
- cepet (tes dengan apache benchmark)
- simple alias sederhana bin gampang
- membuat kodingan saya menjadi rapih (kyknya semua framework gini deh)
- kode-kodenya well documented
- gak perlu pake console tuk installnya
- adaptive, nggak terlalu ngekang
- et cetera, et cetera, et cetera
mungkin di atas hanya sebagai opini saya, seorang koder yang merasakan kejenuhan dengan kodingan sendiri yang kurang berkembang. Hmm jadi ky punya mainan baru nih
hohoho