Setelah sebelumnya kita belajar mendaftarkan SOAP service di OAG maka sekarang kita akan mencoba untuk mendaftarkan REST API di OAG. Untuk yang belum sempat membaca pembahasan terkait register SOAP service dapat dilihat pada link berikut http://blog.nostratech.com/2016/06/register-wsdl-soap-api-via-policy.html
Register REST untuk OAG versi 11.1.2.4.0 berbeda dengan versi yang 11.1.2.2.0, dimana di versi 11.1.2.2.0 OAG memberikan menu Service Manager yang terdapat di dashboard nodemanager sedangkan versi 11.1.2.4.0 kita harus mendaftarkan REST service melalui console Policy Studio dengan kata lain kita harus membuat policy dan filternya sendiri.
Untuk lebih jelasnya mari ikuti langkah-langkah berikut untuk:
Persiapan
- OAG versi 11.1.2.4.0
- REST service
- Buka console Policy Studio
- Pada bagian policies buat container baru dengan nama REST
- Add Policy dengan nama REST
- Drag filter Extract REST Request Attributes kedalam kanvas, kemudian klik finish
- Klik kanan pada filter Extract REST Request Attributes kemudian pilih Set as Start
- Tambahkan filter Connect URL dengan url sebagai berikut: http://api.geonames.org/timezoneJSON?lat=${http.querystring.lat}&lng=${http.querystring.lng}&username=${http.querystring.username}
- Drag success path dari filter Extract REST Request Attributes ke filter Connect URL
- Simpan schema json berikut dengan nama timezone.json
- Import file timezone.json
- Tambahkan filter JSON Schema Validation kemudian pilih file timezone.json yang sudah kita upload sebelumnya
- Drag success path dari filter Connect URL ke filter JSON Schema Validation sehingga menjadi seperti berikut
- Tambahkan filter JSON Path kemudian tambahkan semua attribute yang ada di file timezone.json, tambahkan juga success path untuk menghubungkan dengan filter sebelumnya.
- Tambahkan filter Set Message kemudian set Content-Type: text/xml dan Message Body dengan xml berikut
<message>
<countryName>${countryName}</countryName>
<countryCode>${countryCode}</countryCode>
<timezoneId>${timezoneId}</timezoneId>
<lng>${lng}</lng>
<lat>${lat}</lat>
<time>${time}</time>
<sunset>${sunset}</sunset>
<rawOffset>${rawOffset}</rawOffset>
<dstOffset>${dstOffset}</dstOffset>
<gmtOffset>${gmtOffset}</gmtOffset>
<sunrise>${sunrise}</sunrise>
</message> - Drag success path sehingga policy menjadi seprti berikut
- Add Relative Path
- Deploy dan teset hasil policy tersebut dengan url = http://ipaddress:port/timezoneJSON?lat=48.51&lng=2.21&username=david.nostra
{"description":"A Timezone information", "type":"object", "properties":{ "time":{"type":"string"}, "countryName":{"type":"string"}, "sunset":{"type":"string"}, "rawOffset":{"type":"number"}, "dstOffset":{"type":"number"}, "countryCode":{"type":"string"}, "gmtOffset":{"type":"number"}, "lng":{"type":"number"}, "sunrise":{"type":"string"}, "timezoneId":{"type":"string"}, "lat":{"type":"number"} } }
Jika kalian ingin hasilnya berupa JSON maka cukup tambahkan filter XML to JSON setelah filte Set Message hingga menjadi seperti berikut
Deploy dan test ulang sehingga hasilnya akan menjadi seperti berikut
Demikian tutorial register REST di OAG, semoga dapat bermanfaat. :)
No comments:
Post a Comment