CRUD Web Service SOAP WSDL Menggunakan Nusoap

31 Dec, 2020 | Ditulis oleh : Fadlur Rohman

Rekomendasi Kelas
Membangun Toko Online Menggunakan Laravel

Laravel adalah salah framework php dengan pengguna terbanyak. Dengan banyaknya pengguna otomatis ketika kita menghadapi error akan lebih mudah menemukan solusin...

Sebelumnya sebagai catatan, aplikasi ini dibuat dan dijalankan dalam operating system linux (UBUNTU, Linuxmint, dan Elementary OS). Bagi teman-teman mungkin akan mendapati error untuk function readall (Return Array). Bagi temen2 yang bisa ngasih solusi, bisa ditulis di kolom komen, nanti akan saya update secepatnya.

 

 

Berikut contoh web service menggunakan nusoap library. Dalam contoh ini kita menggunakan satu table bernama tbl_kategori, ceritanya kita mau bikin web service untuk aplikasi perpus. Sebelumnya kita download dulu nusoap library di nusoap.

Setelah kita download library nusoapnya,kita buat dulu database dengan nama “perpus” dan table dengan nama “tbl_kategori” dengan struktur seperti ini :

CREATE TABLE IF NOT EXISTS `tbl_kategori` (
`id_kategori_buku` int(11) auto_increment primary key NOT NULL,
  `kategori_buku` varchar(256) DEFAULT NULL
)

Setalah kita buat buat database dan tablenya, kita buat folder di /var/www/ dengan nama “wsperpus”, setelah itu kita buat dua folder di dalam wsperpus yaitu “classDb” dan “lib”.  Kalo udah, kita exstract file nusoap yang udah didownload trus kita copy file nusoap.php ke dalam folder /wsperpus/lib. Setelah kita copy librarynya, kita buat file dengan nama Classkategori.php di dalam folder wsperpus/classDb.

<?php
    class Classkategori{

        public function create($kategori_buku){
            include 'Koneksi.php';
            $sql = "INSERT INTO tbl_kategori (kategori_buku) VALUES (?)";
            $stmt = $conn->prepare($sql);
            $stmt->bind_param('s',$kategori_buku);
            $query = $stmt->execute();
            $stmt->close();
            $conn->close();
            return $query;
        }
        public function readbyid($id_kategori_buku){
            include 'Koneksi.php';
            $sql = "SELECT * FROM tbl_kategori WHERE id_kategori_buku = '".$id_kategori_buku."'";
            $query = $conn->query($sql);
            $conn->close();
            return $query;
        }
        public function readAll(){
            include 'Koneksi.php';
            $sql = "SELECT * FROM tbl_kategori";
            $query = $conn->query($sql);
            $conn->close();
            return $query;
        }
        public function updatebyid($id_kategori_buku,$kategori_buku){
            include 'Koneksi.php';
            $sql = "UPDATE tbl_kategori SET kategori_buku = ? WHERE id_kategori_buku = ?";
            $stmt = $conn->prepare($sql);
            $stmt->bind_param('si',$kategori_buku,$id_kategori_buku);
            $query = $stmt->execute();
            $stmt->close();
            $conn->close();
            return $query;
        }
        public function deletebyid($id_kategori_buku){
            include 'Koneksi.php';
            $sql = "DELETE FROM tbl_kategori WHERE id_kategori_buku = ?";
            $stmt = $conn->prepare($sql);
            $stmt->bind_param('i',$id_kategori_buku);
            $query = $stmt->execute();
            $stmt->close();
            $conn->close();
            return $query;
        }
    }
 ?>

Setelah kita buat file Classkategori.php kita buat juga file dengan nama Koneksi.php.

<?php
    $host = "localhost";
    $user = "usernamenya";
    $pass = "passwordnya";
    $db = "databasenya";

    $conn = new mysqli($host,$user,$pass,$db);
    if ($conn->connect_error) {
        die("Koneksi gagal : ". $conn->connect_error);
    }
 ?>

Setelah dua file di dalam folder classDb beres, sekarang kita tinggal bikin file di dalam folder wsperpus dengan nama wskategori.php.

<?php
    $ns = "http://".$_SERVER['HTTP_HOST']."/wsperpus/wskategori.php";//setting namespace
    require_once 'lib/nusoap.php'; // load nusoap toolkit library in controller
    $server = new soap_server; // create soap server object
    $server->configureWSDL("WEB SERVICE PERPUS MENGGUNAKAN SOAP WSDL", $ns); // wsdl configuration
    $server->wsdl->schemaTargetNamespace = $ns; // server namespace

    ########################Kategori BUKU##############################################################
    // Complex Array Keys and Types kategori Buku++++++++++++++++++++++++++++++++++++++++++
    $server->wsdl->addComplexType("kategoriData","complexType","struct","all","",
        array(
        "id_kategori_buku"=>array("name"=>"id_kategori_buku","type"=>"xsd:int"),
        "kategori_buku"=>array("name"=>"kategori_buku","type"=>"xsd:string")
        )
    );
    // Complex Array kategori Buku++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    $server->wsdl->addComplexType("kategoriArray","complexType","array","","SOAP-ENC:Array",
        array(),
        array(
            array(
                "ref"=>"SOAP-ENC:arrayType",
                "wsdl:arrayType"=>"tns:kategoriData[]"
            )
        ),
        "kategoriData"
    );
    // End Complex Type kategori++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    //create kategori buku
    $input_create = array('kategori_buku' => "xsd:string"); // parameter create kategori
    $return_create = array("return" => "xsd:string");
    $server->register('create',
        $input_create,
        $return_create,
        $ns,
        "urn:".$ns."/create",
        "rpc",
        "encoded",
        "Menyimpan kategori Buku Baru");
    //end create kategori buku
    //readbyid kategori buku
    $input_readbyid = array('id_kategori_buku' => "xsd:int"); // parameter readbyid kategori
    $return_readbyid = array("return" => "tns:kategoriArray");
    $server->register('readbyid',
        $input_readbyid,
        $return_readbyid,
        $ns,
        "urn:".$ns."/readbyid",
        "rpc",
        "encoded",
        "Mengambil kategori Buku by id_kategori_buku");
    //end readbyid kategori buku
    //update kategori buku
    $input_update = array('id_kategori_buku' => "xsd:int","kategori_buku"=>"xsd:string"); // parameter update kategori
    $return_update = array("return" => "xsd:string");
    $server->register('updatebyid',
        $input_update,
        $return_update,
        $ns,
        "urn:".$ns."/updatebyid",
        "rpc",
        "encoded",
        "Mengupdate kategori by id_kategori_buku");
    //end update kategori buku
    //delete kategori buku
    $input_delete = array('id_kategori_buku' => "xsd:string"); // parameter hapus kategori
    $return_delete = array("return" => "xsd:string");
    $server->register('deletebyid',
        $input_delete,
        $return_delete,
        $ns,
        "urn:".$ns."/deletebyid",
        "rpc",
        "encoded",
        "Menghapus kategori by id_kategori_buku");
    //end delete kategori buku
    //Ambil Semua Data kategori buku
    $input_readall = array(); // parameter ambil data kategori
    $return_readall = array("return" => "tns:kategoriArray");
    $server->register('readall',
        $input_readall,
        $return_readall,
        $ns,
        "urn:".$ns."/readall",
        "rpc",
        "encoded",
        "Mengambil Semua Data kategori Buku");
    //Ambil Semua Data kategori buku
    ################################Kategori BUKU#######################################################
    ###########################FUNCTION KATEGORI BUKU###################################################
    function create($kategori_buku){
        require_once 'classDb/Classkategori.php';
        $kategori = new Classkategori;
        if ($kategori->create($kategori_buku)) {
            $respon = "sukses";
        }else{
            $respon = "error";
        }
        return $respon;
    }
    function readbyid($id_kategori_buku){
        require_once 'classDb/Classkategori.php';
        $kategori = new Classkategori;
        $hasil = $kategori->readbyid($id_kategori_buku);
        $daftar = array();
        while ($item = $hasil->fetch_assoc()) {
            array_push($daftar, array('id_kategori_buku'=>$item['id_kategori_buku'],'kategori_buku'=>$item['kategori_buku']));
        }
        return $daftar;
    }
    function readall(){
        require_once 'classDb/Classkategori.php';
        $kategori = new Classkategori;
        $hasil = $kategori->readAll();
        $daftar = array();
        while ($item = $hasil->fetch_assoc()) {
            array_push($daftar, array('id_kategori_buku'=>$item['id_kategori_buku'],'kategori_buku'=>$item['kategori_buku']));
        }
        return $daftar;
    }
    function updatebyid($id_kategori_buku,$kategori_buku){
        require_once 'classDb/Classkategori.php';
        $kategori = new Classkategori;
        if ($kategori->updatebyid($id_kategori_buku,$kategori_buku)) {
            $respon = "sukses";
        }else{
            $respon = "error";
        }
        return $respon;
    }
    function deletebyid($id_kategori_buku){
        require_once 'classDb/Classkategori.php';
        $kategori = new Classkategori;
        if ($kategori->deletebyid($id_kategori_buku)) {
            $respon = "sukses";
        }else{
            $respon = "error";
        }
        return $respon;
    }

    $server->service(file_get_contents("php://input"));
 ?>

Kalo masih kesulitan, download aja yang sudah jadi disini.

Selamat mencoba, semoga bermanfaat.




Related Post :

Rest Api Authentication Laravel 8 menggunakan sanctum

22 Jan, 2021 - Fadlur Rohman

Laravel 8 menyediakan sistem authentication untuk SPA (single page app...

Restful API Menggunakan Laravel Framework

31 Dec, 2020 - Fadlur Rohman

Laravel telah dilengkapi fitur untuk membuat backend API, diantaranya:...

Sistem registrasi menggunakan codeigniter ion auth

31 Dec, 2020 - Fadlur Rohman

Sistem login untuk aplikasi simplegis sudah kita buat sebelumnya, untu...

Membuat sistem login menggunakan codeigniter ion auth

31 Dec, 2020 - Fadlur Rohman

Pada aplikasi simple gis yang kita buat, pengguna dapat mengakses hala...

Membuat Grafik Menggunakan CanvasJs

31 Dec, 2020 - Fadlur Rohman

Grafik digunakan untuk menampilkan ringkasan dari sekumpulan data, bia...

Rest Web Service Codeigniter Bagian Keempat (API KEY)

31 Dec, 2020 - Fadlur Rohman

Setelah kita membuat&nbsp;database&nbsp;untuk menyimpan data hasil mon...

Mau Bikin Aplikasi Web & Aplikasi Android?

Saya membuka jasa pembuatan aplikasi web dan android untuk aplikasi seperti toko online, monitoring (IoT), interface mesin absensi atau kasir

Silahkan kontak link di bawah ini untuk teknis dan harganya