Thursday, December 14, 2017

Receive and Sent Http Cookies at Oracle Services Bus (OSB)

1. Pendahuluan
Sebuah services biasanya tidak hanya dibuat untuk menampilkan data langsung dari database, ada kalanya services yang akan dibuat tersebut memanggil sebuah service yang lainnya. Services yang akan dipanggil dengan asumsi bahwa services tersebut sudah "tepat". Nah, ada kalanya sebuah service akan menghasilkan cookies dan memerlukan parameter cookies juga untuk consume service itu sendiri. pada kesempatan kali ini, gw akan mencontohkan bagaimana membuat proxy service yang akan memanggil service dimana service tersebut menghasilkan dan mengirimkan cookies.

2. Implementasi
a). Copy WSDL
Nah, karena masih berbasis SOAP maka copy wsdl dari service yang akan dipanggil tersebut. tinggal klik kanan save as dari browser temen-temen sekalian.
b). Buat Businness Services
ketika temen2 sudah memcopy wsdl, langkah selanjutnya adalah membuat business services. jika menggunakan JDEV. pasti teman sudah bisalah ya, membuat BSnya.
c). Buat Proxy Services
1) buat pipeline
2) pada request pipeline, panggilah sebuah Business Service melalui plugin service callout yang MENGHASILKAN cookies. jika service yang memerlukan request payload tinggal menyesuaikan. pada contoh kali ini, request payload hanya merupakan tag , sehingga ketika dihit langsung menghasilkan cookies. seperti gambar di bawah ini.

pada assign response action, untuk mendapatkan cookiesnya tambahkan code seperti gambar di bawah ini 

"fn-bea:inlinedXML($outbound/ctx:transport/ctx:response/tp:headers/http:Set-Cookie)"
*NB : tanpa kutip dua ya

kita uji coba, melalui sbconsole, sehingga bentuk cookies nya menjadi seperti gambar di bawah ini.

apakah nanti semua services yang akan dipanggil berbentuk seperti di atas? TIDAK! semua tergantung developer pembuat service yang dipanggil.
3) hampir sama seperti tahap ke 2, yang membedakan kali ini panggil sebuah Business Services yang MEMERLUKAN cookies. jangan lupa tambahkan plugin Transport Header

isi pada transport header, seperti gambar di bawah ini 

selanjutnya langsung kita uji coba pada sbconsole seperti gambar di bawah ini

nah, sesudah sesuai ya baik yang dihasilkan dan dikirimkan. nah, pada tahap ke 3 ini cookies dikirimkan kembali dalam contoh ini untuk mendapatkan responsenya pada services yang berbeda. jadi total service yang dipanggil ada 2 (dua) :
1. 1 service untuk menghasilkan cookies. nah response yang berisikan cookies digunakan untuk memanggil service ke 2
2. service ke 2 memerlukan kiriman cookies dan request payload.

mudah bukan implementasi Cookies? selamat mencoba guys, jika ada pertanyaan atau kurang jelas silahkan ditanyakan ya...

Terima kasih! 

No comments:

Post a Comment