Tuesday, September 13, 2016

Register REST API di Oracle API Gateway (OAG)

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
  1. OAG versi 11.1.2.4.0
  2. REST service
 Eksekusi
  1. Buka console Policy Studio
  2. Pada bagian policies buat container baru dengan nama REST
  3. Add Policy dengan nama REST
  4. Drag filter Extract REST Request Attributes kedalam kanvas, kemudian klik finish
  5. Klik kanan pada filter  Extract REST Request Attributes kemudian pilih Set as Start
  6. 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}
  7.  Drag success path dari filter Extract REST Request Attributes ke filter Connect URL 
  8. Simpan schema json berikut dengan nama timezone.json
  9. {"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"}
    }
    }
  10. Import file timezone.json
  11.  Tambahkan filter JSON Schema Validation kemudian pilih file timezone.json yang sudah kita upload sebelumnya
  12. Drag success path dari filter Connect URL ke filter JSON Schema Validation sehingga menjadi seperti berikut
  13. Tambahkan filter JSON Path kemudian tambahkan semua attribute yang ada di file timezone.json, tambahkan juga success path untuk menghubungkan dengan filter sebelumnya.
  14. 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>
  15. Drag success path sehingga policy menjadi seprti berikut
  16. Add Relative Path
  17. Deploy dan teset hasil policy tersebut dengan url = http://ipaddress:port/timezoneJSON?lat=48.51&lng=2.21&username=david.nostra
Bonus
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