Sunday, September 17, 2017

REST Adapter in Oracle SOA 12c


Pada kesempatan yang berbahagia ini, sesuai dengan judul yang bisa kita lihat diatas saya akan membagi kepada para pembaca sekalian bagaimana penggunaan REST Adapter pada Oracle SOA 12 c. 
Sebelumnya saya akan menjelaskan apa itu REST Adapter? Jadi REST Adapter ini adalah salah satu component baru Oracle SOA versi 12c yang belum ada pada versi sebelum-sebelumnya, yang berfungsi untuk  melakukan conversi Input REST/JSON kedalam bentuk SOAP/XML serta melakukan conversi Output SOAP/XML kedalam bentuk REST/JSON. Proses Calling/Exposing dapat dilakukan based on WSDL atau WADL.

Baiklah, berikut adalah tutorial penggunaan REST Adapter :
1.      FYI : Dalam tutorial ini, saya akan membuat sebuah service yang menggunakan REST Adapter pada Service Bus Application (OSB).
2.     Pastikan anda sudah membuka JDeveloper anda dan pastikan versi JDeveloper anda 12c atau yang versi lain yang sudah support REST Adapter.
3.     Pastikan anda sudah mempunyai sebuah SOAP Service yang akan kita jadikan Business Service nantinya.

4.     Pastikan anda sudah memiliki file RESTtoSOAP.xslt (mapping value from PS to BS dan menambahkan target namespace) dan file SOAPtoREST.xslt (mapping value from BS to PS). Untuk value namespace pada file RESTtoSOAP.xslt di isi sesuai dengan namespace Business Service yang akan di-hit. Jika belum anda belum memilikinya, berikut saya bagikan  code-nya silahkan copy-paste ke file .xslt anda:
5.     Create New Application
Klik File -> New -> Application -> Pilih Service Bus Application -> Beri nama pada New Service Bus Application anda -> Klik Finish.
6.      Create New Project
Klik Kanan pada New Application yang telah berhasil anda buat -> Pilih New -> Pilih Project -> pilih Service Bus Project (Anda bisa juga mencari pada kolom search yang Sudah tersedia) -> Berikan Penamaan yang menarik dan Sesuai pada New Project anda -> Klik OK.
Dibawah ini adalah Project yang sudah berhasil dibuat dan masih kosong :

7.      Add REST Adapter Component
Klik Kanan pada Proxy Services Canvas -> pilih REST ( cara lain : Cari REST pada tab Components -> Lagu drag and drop ke Proxy Services Canvas) -> isi kolom Name -> Next -> Pada operation bindings Klik lambang Tambah.
8.      Setting REST Operation Binding
Pilih HTTP Verb (Dalam Hal ini pilih POST, karena inputan di peroleh dari body) -> pilih tab request -> centang payload JSON -> Klik Define Schema for Native Format.
9.      Create Input Native Schema
Pilih Next -> beri nama input schema dan pilih Folder kemana schema akan disimpan -> Klik Next -> pada file Type page pilih JSON Interchange Format ->  klik Next.
10.   Copy paste format Input REST/JSON yang sudah kita sediakan sebelumnya ke dalam kolom sample.
Sekilias info :
-       Target namespace dapat diisi sesuai dengan namespace Business Service yang akan kita hit nantinya atau bisa di isi bebas saja karena saya juga sudah menyediakan untuk anda satu file .xslt untuk mapping value sekaligus ubah namespace.
11.   Klik Next -> Next lagi -> Finish.
12.  Kita akan melakukan hal yang sama untuk Response dari REST Adapter.
      Pada Page Operation Binding sekarang klik tab Response -> centang payload JSON -> Klik Define Schema for Native Format -> Klik Next -> beri nama Response  schema dan pilih Folder kemana schema akan disimpan -> Klik Next -> pada file Type page pilih JSON Interchange Format ->  klik Next.
13. Copy paste format Output REST/JSON yang sudah kita sediakan sebelumnya ke dalam kolom sample.
14.   Klik Next -> Next lagi -> Finish.
15.   Ok -> Finish.
Berikut adalah tampilan setelah semua proses diatas selesai.
16.  Create Pipeline and set service type based on WSDL.
Klik Kanan pada Pipelines/Split Joins Canvas -> pilih Insert -> pilih Pipeline -> beri penamaan pada pipeline -> klik Next -> pada Service Type pilih WSDL -> Klik Browse WSDL -> pilih WSDL yang secara otomatis tercreate ketika kita menyelesaikan task pada REST Adapter diatas -> klik OK -> Uncentang Expose as a proxy Service -> Finish.
17.   Set Pipeline as a Target service in PS
Klik kanan pada REST Adapter PS -> pilih Edit -> Klik Browse Target Service -> pilih Pipeline yang baru saja kita buat -> OK -> Save.
18.   Modifikasi Pipeline.
Beberapa hal yang akan kita tambahi pada pipeline adalah :
-        Klik kanan pipeline -> pilih edit.
-        Drag and drop component pipeline pair node kebawah pipeline
-        Pada Request Pipeline drag and drop satu stage
-        Pada stage drag and drop component Transport Header -> Set Direction : Inbound Response -> klik symbol tambah untuk menambahkan header -> set Name : Content-> Type -> set value : “application/json”.
-        Masih di stage yang sama drag and drop component Replace -> set location = body -> value = XSLT Resources -> pilih file XSLT untuk mapping nilai dan set namespace (RESTtoSOAP.xslt) -> set input expression = $body -> ok dan set Replace Option = Replace Node contents.
-        Pada response Pipeline drag and drop satu stage.
-        Pada stage yang baru dibuat drag and drop component Replace -> set location = body --> value = XSLT Resources -> pilih file XSLT untuk mapping nilai dan remove namespace (SOAPtoREST.xslt) -> set input expression = $body -> ok dan set Replace Option = Replace Node contents.
-        Dibawah Component Pipeline pair node tambahkan component Route.
-        Drag and drop Component Routing ke dalam Component Route -> pada option service search Business Service yang telah kita import sebelumnya -> pilih Operationnya.
-        Save.

Dengan mengikuti semua langkah-langkah diatas, maka Project yang telah kita buat dapat kita deploy dan dapat di test. Berikut adalah gambar hasil akhir project yang berhasil kita buat :
Dibawah ini adalah hasil run menggunakan Postman :

Baiklah sampai disini dulu yang bisa saya shared untuk kita semua.
Semoga membantu dan terimakasih.




No comments:

Post a Comment