End In My Mind
Knowledge Warehouse
Extract Schema in RAML
Categories: General

Salah satu fitur RAML yang menarik adalah kemampuan untuk mengekstrak skema dan merujuknya berdasarkan nama. Ada beberapa keuntungan melakukan hal ini:

  • Meningkatkan keterbacaan RAML.
  • Mengizinkan penggunaan kembali skema di beberapa bagian.

Pada bagian sebelumnya, kita telah mempelajari tentang API Model dan bagaimana menciptakan API Model dalam RAML. Untuk sesi ini, kita akan mencoba ekstrak JSON Schema sebagai API Model di dalam RAML menggunakan sampel berikut.

Response based on User Interface

 

How to Extract Schema in RAML?

Jalankan api-designer dimana nantinya bisa akses http://localhost:3000, buka file sampleAPI.raml yang telah pernah dibuat sebelumnya.  Kita kembali ke bagian root dan pada key protocol tekan tombol enter. Kita akan menambahkan snippet di baris ke-6.
Buat sebuah model response untuk service inquiry dengan nama inquiryResponse seperti pada gambar di samping.

  • Tipe untuk model API biasanya adalah object.
  • Di dalam API Model, kalian bebas untuk memberikan nama model pada setiap object.
  • Field dalam request/response selalu dibangun di dalam properties.
  •  Untuk field yang sifatnya wajib atau opsional menggunakan key required di dalam field dan valuenya berupa boolean (true atau false).
  •  Misalkan ada field A yang tipenya berupa array, maka value type yang digunakan adalah array dan selanjutnya gunakan keyword “items” dimana value type dalam items tersebut adalah kumpulan dari beberapa field di dalam field A seperti pada gambar di samping.
  • Jika field A mempunyai tipe berupa object, maka masukkan beberapa field yang dipunyai oleh field A tersebut seperti pada gambar di samping.
Setelah itu, panggil nama model tersebut pada key request/response dalam RAML. Untuk case ini, penulis memanggil nama model inquiryResponse pada bagian response di service inquiry.

 

 Output Based on User Interface in RAML

Berikut hasil yang dapat kita lihat jika menggunakan user interface untuk RAML.

Leave a Reply