[diperbarui pada 12 Mei 2015]
Berawal dari postingan sebelumnya yang menanyakan perihal web service SOAP yang dibuat dengan PHP dan client pake Android. Rasa penasaran saya menuntun saya untuk mencoba membuat SOAP web service sederhana dan membuat Android clientnya
PERHATIAN
melihat perkembangan saat ini untuk membuat web service saya menyarankan untuk migrasi ke RESTful web service http://www.ardhi.web.id/2015/05/web-service-php-menggunakan-slim_11.html, saya sudah tidak akan membuat artikel baru tentang pembuatan web service menggunakan SOAP
Berawal dari postingan sebelumnya yang menanyakan perihal web service SOAP yang dibuat dengan PHP dan client pake Android. Rasa penasaran saya menuntun saya untuk mencoba membuat SOAP web service sederhana dan membuat Android clientnya
Kali ini akan saya bahas mengenai pembuatan web service servernya, sebagai informasi lingkungan development saya sebagai berikut:
Xubuntu 13.04 64 bit
paket mySQL 5.5.32
paket PHP 5.4.9
library nuSOAP 0.9.5, bisa diunduh di http://sourceforge.net/projects/nusoap/
Xubuntu 13.04 64 bit
paket mySQL 5.5.32
paket PHP 5.4.9
library nuSOAP 0.9.5, bisa diunduh di http://sourceforge.net/projects/nusoap/
Karena filosofi CODING adalah COpy - paste - eDitING maka selanjutnya kita perlu berburu source code web service dengan nuSOAP :) dari tutorial yang sudah dibuat oleh rekan2 programmer di seluruh dunia. Salah satu referensi yang bagus saya temui di http://www.scottnichol.com/nusoapintro.htm
Di sini saya akan membuat sebuah web service sederhana yang mengembalikan sebuah String dengan tambahan sebuah parameter input dari sisi client.
Saya akan membuat sebuah file PHP sebagai web service server, includekan library nuSOAPnya
Kemudian buat server SOAP dengan baris kode berikut
Buka di browser kamu, apabila sudah benar maka akan muncul tampilan seperti di bawah ini
Jika diklik link WSDL di halam tersebut, akan muncul dokumen WSDLnya seperti gambar berikut
Search saja addon bernama SOA Client
Untuk mengakses tool tersebut klik menu Tools --> SOA Client --> Access Web Service dari aplikasi Firefox
Masukkan alamat WSDL ke field WSDL Address kemudian klik tombol Parse WSDL
Masukkan parameter nama, misalnya ardhi dan klik tombol Invoke
Bila lancar, web service yang sudah kita buat akan memberikan respon
Bagian 2 -- Membuat Web Service Client Sederhana di Android
Di sini saya akan membuat sebuah web service sederhana yang mengembalikan sebuah String dengan tambahan sebuah parameter input dari sisi client.
Saya akan membuat sebuah file PHP sebagai web service server, includekan library nuSOAPnya
require_once('nusoap095/lib/nusoap.php');Sesuaikan direktorinya dengan dengan direktori tempat library nuSOAP disimpan
Kemudian buat server SOAP dengan baris kode berikut
$server = new soap_server;Lalu setting WSDLnya
$server->configureWSDL('hello');Buat script fungsi SOAPnya dan register ke server SOAP
$server->register( 'hello', array('name' => 'xsd:string'), // input parameters array('return' => 'xsd:string'), // output parameters 'uri:helloworld', // namespace 'uri:helloworld/hello', // SOAPAction 'rpc', // style 'encoded' // use );Di bagian akhir script tambahkan
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA);Source code lengkapnya sebagai berikut ini
<?php // Pull in the NuSOAP code //sesuaikan folder library nuSOAP dengan direktori kamu require_once('nusoap095/lib/nusoap.php'); // Create the server instance $server = new soap_server; $server->configureWSDL('hello'); // Register the method to expose $server->register( 'hello', array('name' => 'xsd:string'), // input parameters array('return' => 'xsd:string'), // output parameters 'uri:helloworld', // namespace 'uri:helloworld/hello', // SOAPAction 'rpc', // style 'encoded' // use ); // Define the method as a PHP function function hello($name) { return 'Hello, ' . $name; } // Use the request to (try to) invoke the service $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : ''; $server->service($HTTP_RAW_POST_DATA); ?>Jangan lupa, simpan file misalnya dengan nama server2.php.
Buka di browser kamu, apabila sudah benar maka akan muncul tampilan seperti di bawah ini
Jika diklik link WSDL di halam tersebut, akan muncul dokumen WSDLnya seperti gambar berikut
Sekarang masalahnya adalah bagaimana kita tahu kalau web service yang kita buat sudah bekerja?
Saya sarankan anda menggunakan tool web service client untuk mengetes web service yang sudah dibuat. Banyak terdapat tool yang bisa digunakan, salah satunya adalah soapUI atau dapat pula menggunakan browser Firefox yang telah ditambahkan addon bernama SOA Client seperti yang saya gunakan di tutorial ini.Search saja addon bernama SOA Client
Untuk mengakses tool tersebut klik menu Tools --> SOA Client --> Access Web Service dari aplikasi Firefox
Masukkan alamat WSDL ke field WSDL Address kemudian klik tombol Parse WSDL
Masukkan parameter nama, misalnya ardhi dan klik tombol Invoke
Bila lancar, web service yang sudah kita buat akan memberikan respon
Woke, sampai di sini dulu Part-1nya, semoga bermanfaat :)
6 comments:
Fatal error: Uncaught SoapFault exception: [Client] Function ("call") is not a valid method for this service in C:\xampp\htdocs\belajarWS\client.php:7 Stack trace: #0 C:\xampp\htdocs\belajarWS\client.php(7): SoapClient->__call('call', Array) #1 C:\xampp\htdocs\belajarWS\client.php(7): SoapClient->call('hello', Array) #2 {main} thrown in C:\xampp\htdocs\belajarWS\client.php on line 7
sepertinya it karena ekstensi soap bawaan PHP nya bro, coba ekstensi soap bawaan dari PHP dinonaktifkan dulu
ATAU
test soap web servicenya jangan pakai source code client.php dari saya di atas, coba pake soapUI atau addon firefox untuk ngetest web service
soap server (server2.php) diakses normal kan?
sudah saya update artikelnya masbro
ok ok bro
Mantabh . .. matur suwun tutorialnya, tapi kok ada error : faultstring: unable to serialize result .
melihat perkembangan saat ini untuk membuat web service saya menyarankan untuk migrasi ke RESTful web service http://www.ardhi.web.id/2015/05/web-service-php-menggunakan-slim_11.html, saya sudah tidak akan membuat artikel baru tentang pembuatan web service menggunakan SOAP
Post a Comment