Bikin route RESTful API yang bener!!!!

Muhammad Naufal Yafi'
4 min readDec 31, 2023

--

Gini bro, bikin RESTful API tuh kayak bikin jalur komunikasi di tongkrongan biar ngobrolnya nyambung, enak dan semua paham. Bayangin lo lagi nongkrong sama temen-temen, terus ada satu orang yang tiba-tiba nyeletuk, “Eh, gua pengen tambah daftar makanan!” dibanding dia ngomong, “Gua mau pesen makan lagi”, mana yang lebih nyambung dan gampang dipahami?

Nah, kalau lo bikin route kayak /categories/add atau /categories/delete, itu sama aja kayak temen lo yang ngomong kepanjangan dan ribet. Padahal bisa lebih simpel dan jelas, dengan gunain HTTP Method. Kek gini nih

Mungkin disini masih ada yang belum tau apa itu RESTful API, kita kenalan dulu yuk apa itu.

Apa Dampak Buruknya?

Route sembarangan tanpa mempertimbangkan praktik terbaik, berbagai masalah bisa muncul. Route yang tidak terstruktur dapat menyebabkan kebingungan dalam pemanggilan API, meningkatkan risiko kesalahan coding, dan menyulitkan proses debugging. Selain itu, ini bisa memperumit dokumentasi dan pemeliharaan, membuat pengembangan lebih lambat dan rentan terhadap bug. Oleh karena itu, penting bagi pengembang untuk merancang route dengan cermat, mengikuti prinsip-prinsip RESTful yang jelas dan konsisten.

Exposition (Pengenalan/Penjelasan)

Mungkin banyak yang bertanya — tanya apa hubungannya menu makanan dengan API. Aku ingin membuat analogi terkait pembuatan route. Dikarenakan API ini bisa dianalogikan dengan menu makanan, kamu tinggal sebut saja makanan yang ingin kamu pesan nanti akan datang sesuai permintaan makanan yang kamu pesan tadi.

Seperti halnya API ketika kamu melakukan permintaan kepada server yaitu Get /categories/1maka server akan mengirimkan data kategori dengan index pertama. Artinya server akan mengirimkan data sesuai dengan permintaan dari client.

Ricing Action (Problem)

Nah pada menu di atas bisa dilihat bahwa setiap paket memiliki informasi makanan yang lengkap. Bayangkan jika ditulis tidak lengkap. Jika ditulis hanya Paket 1: Nasi Goreng, bagaimana hal tersebut membuat bingung pelanggan, tulisannya paket tetapi kenapa hanya ada Nasi Goreng saja, dan setelah datang ke meja kok ada Es Teh juga.

Sama halnya dengan route pada API juga sangat penting untuk memberikan informasi yang lengkap mengenai menu tersebut akan memberikan data apa saja.

Penggunaan route API yang baik dan terstruktur bisa melakukan optimasi terkait respon dari server. Pada contoh di atas terdapat 3 tab yang masing — masing memiliki data yang berbeda. Dan kemungkinan pengguna tidak mengakses 2 tab lainnya. Akan menjadi sia — sia jika respon dari server langsung menampilkan ke tiga data tersebut.

// ../api/v1/profile/naufal_yaf

{
"username": "naufal_yaf",
"email": "..@gmail.com",
"posts": [
{
"id": 1238,
"title": "Postingan Pertama",
"image": "hujan.jpeg"
},
...
],
"reels": [
{
"id": 1123,
"title": "Reel Pertama",
"video": "hujan-rintik.mp4"
},
...
],
"tags": [
{
"username": "universitas._",
"id": 342,
"title": "Reel Pertama",
"post": "PKKMB.jpeg"
},
...
]
}

Denouement (Penyelesaian/Solusi)

Salah satu caranya adalah membagi menjadi 3 route.

Route Pertama

Pada route yang pertama digunakan untuk mendapatkan data profile dan juga data post feed. Dengan route ../api/v1/profile/naufal_yaf/posts .

// ..api/v1/profile/naufal_yaf/posts

{
"username": "naufal_yaf",
"email": "..@gmail.com",
"posts": [
{
"id": 1238,
"title": "Postingan Pertama",
"image": "hujan.jpeg"
},
...
]
}

Route Ke — 2

../api/v1/profile/naufal_yaf/reels digunakan untuk mendapatkan data profile dan reels.

// ../api/v1/profile/naufal_yaf/reels

{
"username": "naufal_yaf",
"email": "..@gmail.com",
"reels": [
{
"id": 1123,
"title": "Reel Pertama",
"video": "hujan-rintik.mp4"
},
...
]
}

Route ke — 3

../api/v1/profile/naufal_yaf/tags digunakan untuk mendapatkan data profile dan tags.

// ../api/v1/profile/naufal_yaf/tags

{
"username": "naufal_yaf",
"email": "..@gmail.com",
"tags": [
{
"username": "universitas._",
"id": 342,
"title": "Reel Pertama",
"post": "PKKMB.jpeg"
},
...
]
}

Dengan membagi menjadi 3 route menjadi lebih jelas, ../profile/:username/reels . Route seperti itu sangat menjelaskan bahwa ingin mendapatkan profile dari username tertentu sekaligus ingin mendapatkan data reels. Juga dengan begitu tidak akan menampilkan 2 tab lainnya jadi server tidak begitu boros jika pengguna hanya mengakses 1 atau 2 tab saja.

Epilog

Mendesain route pada RESTful API dengan baik dan terstruktur adalah hal yang sangat penting untuk memastikan performa dan efisiensi dalam komunikasi antara klien dan server. Seperti ilustrasi menu makanan yang membingungkan jika informasinya tidak lengkap, demikian pula dengan route yang tidak jelas dan tidak terstruktur bisa membingungkan pengembang dan pengguna API. Route yang acak-acakan akan menyulitkan dalam pemanggilan API, meningkatkan risiko kesalahan, dan memperumit proses debugging.

Dengan menerapkan prinsip RESTful yang konsisten dan terorganisir, kita dapat menghindari redundansi data, mempermudah dokumentasi dan pemeliharaan, serta mengoptimalkan penggunaan sumber daya server. Pembagian route yang spesifik dan jelas, seperti dalam contoh ../api/v1/profile/naufal_yaf/posts, ../api/v1/profile/naufal_yaf/reels, dan ../api/v1/profile/naufal_yaf/tags, membantu server untuk hanya mengirimkan data yang diminta oleh klien, sehingga efisiensi dan responsivitas sistem meningkat. Pada akhirnya, desain route yang baik adalah fondasi dari aplikasi API yang skalabel, dapat diandalkan, dan mudah dikelola.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

No responses yet

Write a response