[Yii Framework] Membuat Web Service SOAP(1)

Web Service saat ini sedang menjadi tren di dunia IT. Dengan web service, memungkinkan sesuatu dapat di akses dari semua platform yang independen. Sifatnya yang independen pada semua platform memberikan kemudahan bagi pihak developer yang ingin mengaksesnya, pihak developer bebas mau menggunakan OS apapun, bahasa pemrograman apapun, jenis komputer apapun.

Pada penerapannya sendiri, web service biasanya akan merujuk ke suatu set API yang dapat di akses oleh client lewat internet. Okeh, untuk penjelasan tentang web service silahkan anda googling-goongling ya😀 .. Saya disini akan lebih berfokus pada bagaimana kita membuatnya..

Pertama, saya asumsikan saya akan membuat sebuah service untuk tabel “Satu”. Lalu bukalah controller dimana anda akan membuat service nya(pada kasus ini berartu satuController.php). Masukkan code berikut pada controller tersebut:

        public function actions()
	{
	    return array(
	        'quote'=>array(
	            'class'=>'CWebServiceAction',
	        ),
	    );
	}

	/**
	 *@return string
	 *@soap
	 */
	public function getWhatever()
	{
		return 'Terserah mau nampilin apa..';
	}

Penjelasan:  Kita memasukkan dua buah function di atas. Pertama function “actions()” yang digunakan untuk mendefinisikan class “CWebServiceAction” yang sudah disediakan dari Yii Framework. Hal ini dilakukan agar kita dapat menerapkan web service itu sendiri.

Sedangkan function kedua adalah function “getWhatever()”, adalah sebuah function service yang kita sediakan. Fungsi ini bisa di akses lewat aplikasi lain dimana funsi ini akan mengembalikan nilai string yang isinya: ” Terserah mau nampilin apa…”. Satu hal yang harus anda perhatikan, pada code di atas “function getWhatever()” terdapat:

	/**
	 *@return string
	 *@soap
	 */

Itu bukanlah sekedar sebuah komentar, tapi code tersebut lah yang sudah menjadikan “function getWhatever()” tersebut menjadi SOAP yaitu lewat @soap, sedakngan @return string maksudnya adalah fungsi tersebut akan mengembalikan sebuah nilai yang bertipe string.

Setelah telah selesai membuat code di atas, pastikan class “quote” yang sudah kita deklarasikan di “function actions()” sudah bisa kita izinkan aksesnya untuk user dengan cara menambahkannya pada “function rules()” kita, sehingga akan menjadi seperti berikut:

                        array('allow',
				'actions'=>array('index','view','quote'),
				'users'=>array('*'),
			),

Nah, jika sudah selesai coba anda buka link berikut: http://localhost/namaProjectAnda/index.php?r=satu/quote (sesuaikan dengan project anda).

Jika memang pembuatan web service anda sudah berhasil, anda akan melihat tampilan link di atas berupa kumpulan tag XML yang sudah di buat otomatis oleh Yii Framework seperti berikut:

Jika sudah tampil seperti gambar di atas berarti anda sudah berhasil membuat service nya..

Sekarang saya akan bagaimana cara membuat aplikasi client yang akan mengakses service kita. Saya akan tunjukkan dengan menggunakan dua bahasa pemrograman. Yang pertama dengan menggunakan PHP(web application) dan menggunakan C#(desktop application).

1. PHP (non Yii Framework)

Saya akan mencontohkannya tanpa menggunakan Yii Framework. Pertama buatlah sebuah file ” .php”. Lalu masukkan code berikut:

<?php
$client=new SoapClient('http://localhost/1form2model/index.php?r=satu/quote');
echo $client->getWhatever();
?>

Lalu jalankan code di atas via localhost anda… Anda terlihat sebuah halaman yang berisi tulisan ” Terserah mau nampilin apa…”

2 . C#(dengan Visual Studio C# Express Edition 2008)

Pertama, bukalah visual studio anda. Lalu buat project “Windows Form Application” baru. Setalah itu, pada “Solution Explorer” klik kanan pada “References”, lalu pilih “Add Service References”. Masukkan url service yang telah kita buat tadi ke dalam text “Address”, lalu klik “Go”. Setelah selesai, klik “OK”.

Setelah itu letakkan sebuah control “Label” di form anda. Dan buat contructor pada Form tersebut menjadi seperti berikut:

        public Form1()
        {
            InitializeComponent();
            ServiceReference1.SatuControllerPortTypeClient itu =
				new ServiceReference1.SatuControllerPortTypeClient();
            label1.Text = itu.getWhatever();
        }

Setelah itu jalankan program anda.. Hasilnya akan seperti berikut:

Hehe, seperti itulah caranya…

Selesai… Pada postingan selanjutnya saya akan coba paparkan cara menyatukan web service dengan database yang ada pada aplikasi kita…

Okeh, selamat mencoba…

Semoga membantu….😀

20 Responses to [Yii Framework] Membuat Web Service SOAP(1)

  1. Pingback: [Yii Framework] Membuat Web Service SOAP(2) « Sabitlabscode

  2. Pingback: [Yii Framework] Membuat Web Service SOAP(3) « Sabitlabscode

  3. Kok bisa2nya seri tutorial Web Service ini gak ada yg like ataupun comment, saya nyari2nya ampe seharian.. thx mas Sabit, again.. my best passive mentor😀

  4. hehe, kayaknya masih ga terlalu banyak yang udah mendalami di web service mas..

  5. Pingback: Yii Framework REST Web Service and Windows Phone 7 sebagai Client « Sabitlabscode

  6. wanprabu says:

    mantap mas, punya saya kmren error gara-gara kurang comment @soap😀

  7. rifkihanny says:

    kebetulan skripsi dapet webservice pake yii, ternyata selain ebook ada juga tutor webservice YII, makasih mas. Semoga ilmunya semakin berkembang

  8. Arifah says:

    mas ini saya mau tanya itu yang function rules itu ditempatkan dimana ya?

  9. obi says:

    mas kalau ada error “looks like we got no XML document” itu bagaimana?

    Trims

  10. dini says:

    nuhun mas.. keren..🙂

  11. dini says:

    getWhatever();
    ?>

    kode ini disimpen dmna ya mas? pake nama apa?

  12. mas sabit mau tanya, knapa ya soap saya ko function “call” nya ga kebaca ?
    mohon bantuannya🙂

  13. keren sabit..ga hanya tulisan ini, tp sluruh tutorialmu jadi ilmu yang bermanfaat buat orang lain.. Smoga jadi ladang pahala ya…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: