Selasa, 24 Februari 2015

Web service Nusoap ubuntu

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 :
    1
    2
    3
    $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
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?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
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?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

Tidak ada komentar:

Posting Komentar