Membuat API Blueprint dengan apiary.io | Season 1
Beberapa waktu lalu saya akan melakukan testing aplikasi android di salah satu project yang mana masih dalam tahap pengembangan oleh tim saya. Namun, karena kendala si Mobile Engineer-nya masih nunggu API (Application Programming Interface) yang masih dikerjakan oleh Backend Engineer terpaksa saya harus menunggu juga.
Yap…. Ini adalah masalah yang membuang-buang waktu apabila tidak segera diselesaikan. Sebagai seorang QA Engineer saya tidak bisa duduk diam dan menunggu aplikasi siap di testing, saya juga harus mencari solusi untuk itu.
Solusi yang dimaksud adalah bagaimana kita membuat sebuah mockup API yang bisa dimanfaatkan oleh si Mobile Engineer tadi tanpa harus menunggu real API yang masih dikerjakan.
Lalu, apa sih perbedaan antara mockup API dengan real API?
mockup API : sebuah API yang dibuat sesuai kebutuhan developer dengan memanfaatkan aplikasi pihak ketiga sebagai server serta data dummy yang digunakan dalam kurun waktu tertentu. Nah, membahas mengenai mockup API, kalian bisa membaca tentang hal ini dengan menggunakan Postman yang ada di tulisan berikut oleh Fatoni Ahmad.
real API : sebuah API yand dibuat dengan data sesungguhnya sesuai yang dibutuhkan dengan kurun waktu yang lama selama aplikasi masih bisa di akses dan dipergunakan.
Yup, pengertian tersebut atas pendapat saya sendiri, bila ada pengertian yang kalian pahami bisa juga usulkan ke saya melalui private note atau di kolom komentar. :-)
Let’s Begin
Buatlah project baru kalian pada apiary.io dengan menekan tombol Create New API Project. Untuk nama project tulislah sesuai kemauan kalian, dalam kasus ini saya memberi nama dengan Profile API.

Ketika project berhasil dibuat kalian akan di arahkan ke dashboard dengan tampilan seperti berikut.

Pada dashboard tersebut terdapat 2 (dua) kolom yang di antaranya :
- Editor : Editor terletak sebelah kiri yang berwarna hitam yang digunakan untuk membuat design mockup API.
- Preview : Halaman preview terletak sebelah kanan editor yang digunakan untuk melihat hasil mockup API yang telah dibuat. Halaman preview juga dapat di non-aktifkan.
GET
Nah, dalam tahap pertama kita akan menggunakan metode HTTP Request yang paling sering digunakan untuk mengambil dan atau membaca data-data.
Hapuslah default source code tersebut dan ubahlah menjadi seperti ini :
FORMAT: 1A
HOST: https://oimtrust.com/api/# Profile APITutorial membuat API Blueprint dengan apiary.io# Group Profile# Profile Collection### Retrieve All Profile### Filter Profile
Pada source code tersebut kita membuat sebuah collection yang akan kita implementasikan kedalam API. Untuk fungsi GET sendiri disini saya membuat dua opsi, yaitu :
### Retrieve All Profile: Mengambil seluruh data dari profile.
### Filter Profile: Mengambil data profile berdasarkan hasil dari filter.
Perhatikan pada source code tersebut, untuk HOST saya menggunakan domain saya sendiri. Harap diperhatikan bahwa domain tersebut hanyalah domain dummy artinya tidak harus domain yang benar-benar bisa digunakan. Kalian bisa menggunakan domain seperti http://api.example.com, http://example.domain/api/ dan lain sebagainya.
Untuk menjalankan fungsi tersebut kita perlu membuat data structures untuk mengambil object. Buatlah data structures dibawah filter profile seperti berikut.
# Data Structures## Profile- id :
- name :
- email :
- phone :
- type :
- image_url :
Seperti yang kalian lihat di atas, object tersebut memiliki value yang belum kita inputkan. Kalian bisa menginputkan dengan data yang kalian kehendaki, dalam kasus tersebut saya memasukkan data seperti ini.
# Data Structures## Profile- id : 6c34a6af-752d-408a-b5d3-00a368e7201e (string, required)
- name : Fathur Rohim (string, required)
- email : rohim@dot-indonesia.com (string, required)
- phone : 081388878676 (number, required)
- type : Tetap (enum[string], required)
- Tetap
- Freelance
- Kontrak
- image_url : https://www.oimtrust.com/assets/img/oim.jpg
Retrieve All Profile [GET]
Baiklah, tahap selanjutnya adalah menjalankan HTTP method GET (menampilkan keseluruhan profil) seperti berikut :
FORMAT: 1A
HOST: https://oimtrust.com/api/# Profile APITutorial membuat API Blueprint dengan apiary.io# Group Profile# Profile Collection [/profile]### Retrieve All Profile [GET]- Request (application/json)
- Response 200 (application/json)
- Attributes (Profile)### Filter Profile# Data Structures## Profile (object)- id : 6c34a6af-752d-408a-b5d3-00a368e7201e (string, required)
- name : Fathur Rohim (string, required)
- email : `rohim@dot-indonesia.com` (string, required)
- phone : `081388878676` (string, required)
- type : Tetap (enum[string], required)
- Tetap
- Freelance
- Kontrak
- image_url : https://www.oimtrust.com/assets/img/oim.jpg
Lalu, lihatlah hasilnya menjadi seperti ini :

Filter Profile [GET]
Seperti metode GET sebelumnya kita membaca keseluruhan data dari profile. Nah, pada tahap kali ini kita mengambil value yang kita sesuaikan dengan kebutuhan kita. pada ### Filter Profiletambahkan source code seperti berikut.
### Filter Profile [GET /profile{?type}]- Parameters- type : Tetap (enum[string], optional)
- Default : `Empty`
- Members
- Empty
- Tetap
- Freelance
- Kontrak- Request (application/json)
- Response 200 (application/json)
- Attributes (Profile)
Lalu lihatlah hasilnya, seperti berikut :

POST
Sebuah data tidak akan ada tanpa sebabnya, bukan? Yup, oleh karena itulah kita memerlukan metode HTTP untuk membuat data menggunakan POST. Caranya cukup mudah, tidak berbeda jauh dengan tahap GET yang telah kita buat sebelumnya. Tulislah source code berikut dibawah ### Filter Profile.
### Create Profile [POST]- Request (application/json)
- Attributes (Profile Create)- Response 201 (application/json)- Attributes (Profile)
Setelah kalian menulis source code diatas pasti akan mengalami error seperti berikut.

Yup, disitu disebutkan bahwa Profile Create tidak terdefinisi atau dalam artian belum kita buat. Buatlah # Profile Createdengan source code seperti berikut yang terdapat pada # Data Structures.
## Profile Create (object)- name : Fathur Rohim (string, required)
- email : `rohim@dot-indonesia.com` (string, required)
- phone : `081388878676` (string, required)
- type : Tetap (enum[string], required)
- Tetap
- Freelance
- Kontrak
- image_url : https://www.oimtrust.com/assets/img/oim.jpg
Nah, masalah telah solve. Coba kalian perhatikan baik-baik, pada source code tersebut tidak jauh berbeda dengan method GET, bukan? Yup, hanya pada method POST tidak ada id. Karena source code keduanya sama sebaiknya pada # Profile (object)dihapus aja dan kalian tambahkan perintah include untuk memasukkan data yang sama seperti ini.
## Profile (object)- id : 6c34a6af-752d-408a-b5d3-00a368e7201e (string, required)
- Include Profile Create
Setelah itu lihatlah pada kolom preview, hasilnya tetap sama seperti semula. Karena, data yang ada pada Profile Create kita masukkan kedalam object Profile.
Kesimpulan
Dari season 1 ini saya memberikan kesimpulan sebagai berikut :
- Tidak perlu menyiapkan server untuk mockup API
- Menghemat waktu development karena tidak perlu menunggu Backend Engineer untuk deploy real API ke server
- Penulisan source code lebih mudah karena tidak dibutuhkan skill coding yang mumpuni
- Source code yang telah ditulis dapat langsung menjadi sebuah dokumentasi
- Kapasitas API Projects tidak dibatasi (unlimited) dan didukung dengan format API Blueprint dan OpenAPI (Swagger)
- Untuk kolaborasi hanya dibatasi untuk 5 orang namun tidak termasuk tim
- Dapat di sinkronisasi dengan Github.
Demikian tulisan tutorial dari saya, tulisan ini masih banyak kekurangannya jadi saya mohon koreksi, saran dan masukan dari kalian. Dan jangan lupa untuk share & clap tulisan ini supaya menjadi dukungan penuh buat saya. Sekali lagi, ikuti tutorial ini dengan baik dan silahkan ikuti untuk season yang kedua. Terima kasih. :-)
