Web Service PHP – NUSOAP pada Ubuntu

NUSOAP adalah kumpulan class PHP yang digunakan oleh para programmer PHP untuk membuat web service atau menggunakannya sebagai client. NUSOAP menggunakan protokol web service SOAP : Simple Object Access Protocol yang dapat menggenerate format dokumen XML WSDL

Library NUSOAP dapat didownload di sini. Berikut langkah-langkah membuat web service serta membuat client yang mengaksesnya.

  1. Langkah pertama pastikan server ubuntu anda telah terinstall apache2 dan php5
  2. Lakukan installasi modul php-xml dan php-soap dengan perintah berikut ini :
    $sudo apt-get install php5-xmlrpc
    $sudo apt-get install php-soap
    $sudo service apache2 restart
    
  3. Pada contoh ini dokumen root web berada dalam direktori /var/www/webku
  4. Ekstrak hasil download NUSOAP dan letakan dalam direktori /var/www/webku/
  5. Berikutnya adalah membuat file web service ( server1.php) dan letakan dalam direktori /var/www/webku/,
    Pada contoh ini akan dibuat dua service yang memanggil fungsi : salam dan jumlah

    <?php
    require_once 'lib/nusoap.php';
    $server = new soap_server();
    $server->configureWSDL('server1', 'urn:server1');
    $server->register('salam',
    	array('name'=>'xsd:string'),
    	array('return'=>'xsd:string'),
            'urn:server1',
    	'urn:server1#salam',
            'rpc',
            'encoded',
            'beri salam pada client anda'
    );
    
    $ar_param = array('param1'=>'xsd:int','param2'=>'xsd:int');
    
    $server->register('jumlah',
    	array('param1'=>'xsd:int','param2'=>'xsd:int'),
    	array('return'=>'xsd:int'),
            'urn:server1',
    	'urn:server1#jumlah',
            'rpc',
            'encoded',
            'jumlahkan dua bilangan'
    );
    
    function salam($x)
    {
       return 'Salam ' . $x;
    }
    
    function jumlah($x, $y)
    {
       return $x + $y;
    }
    
    $HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
    $server->service($HTTP_RAW_POST_DATA);
    ?>
    
  6. Cek web service dengan mengakses url: http://localhost/webku/server1.php, untuk melihat format dokumen xml wsdl yang dihasilkan dapat diakses dengan url : http://localhost/webku/server1.php?wsdl
  7. Langkah berikutnya adalah mengakses web service, pada contoh ini dilakukan dalam aplikasi yang sama, dalam sesungguhnya web service diakses oleh aplikasi yang berbeda dan mungkin juga server yang berbeda. Berikut kode program client ( client.php) yang memanggil service salam dan jumlah pada web service server1.php
    <?php
      require_once 'lib/nusoap.php';
      $opsi = array(
    	  'uri'=>'http://localhost/webku/server1.php',
              'location'=>'http://localhost/webku/server1.php'
    	);
    
      $sc = new soapclient(null,$opsi);
      $c1 =  $sc->__call('salam', array('param'=>'Faiz Fikri'));
      echo $c1;
    
      echo '<hr/>';
      $ar_bil = array(6, 8);
      $z = $sc->__call('jumlah', $ar_bil);
      echo "6 + 8 = $z";
    ?>
    
  8. Akses url: http://localhost/webku/client1.php untuk mencoba program web service anda dipanggil melalui client

There Are 2 Responses So Far. »

  1. Mau tanya pak, web service tersebut bisa engga kalau kita aksess dengan bahasa pemrograman under windows, misal vb 6, delphi, dkk

    Trims.

  2. bisa saja .. webservice memang salah satu fungsinya adalah digunakan untuk menyediakan layanan bagi aplikasi lain … dengan data yang dikirim/disediakan mempunyai format xml .. untuk platform OS tidak masalah ..

Post a Response