Rest API: Panduan Praktis Membuat API dengan Aturan yang Benar

Rest API: Panduan Praktis Membuat API dengan Aturan yang Benar

Created
May 15, 2023 07:11 PM
Tags
Rest API
API
Backend
develop
developer
http
status code
response api
panduan
programming
technology
Author
Description
REST API (Representational State Transfer Application Programming Interface) adalah salah satu jenis arsitektur yang digunakan untuk membangun dan mengintegrasikan suatu sistem. REST API memungkinkan aplikasi untuk berkomunikasi dengan satu sama lain melalui permintaan dan respons HTTP.

#Intro

Hi, Disini saya mau mau sharing sedikit mengenai REST API yang telah saya pelajari selama ini 😁. REST API itu apa sih? dan bagaimana cara membuat REST API yang baik dan benar.

Pengenalan Rest Api

Bayangkan kita sedang menggunakan Mesin ATM untuk mengakses rekening bank. ATM bertindak sebagai antarmuka (API) yang membantu kita agar terhubung dengan sistem bank. kita bisa memberikan perintah untuk memeriksa saldo kita atau untuk melakukan penarikan tunai, mesin ATM akan memproses dan memberikan respons sesuai dengan perintah yang diberikan. API disini bertugas untuk mengatur akses ke rekening bank dan memberikan cara standar untuk berinteraksi dengan sistem bank tanpa perlu mengetahui rincian internalnya. Ini adalah contoh sederhana dari bagaimana REST API bekerja dalam konteks perbankan.
Rest API, juga dikenal sebagai Representational State Transfer Application Programming Interface, yaitu pendekatan yang digunakan untuk menghubungkan dan mengintegrasikan sistem atau applikasi. Dalam Rest API, aplikasi dapat berkomunikasi dengan satu sama lain melalui permintaan HTTP seperti GET, POST, PUT, dan DELETE. Adapun contoh pengiriman dan penerimaan data dalam format yang umum seperti JSON.

Bagaimana membuat REST API yang benar?

Sebelum membuat REST API perlu diketahui ada beberapa aturan yang harus dilakukan. Pertama, merancang desain API dengan jelas dengan menentukan struktur endpoint yang konsisten. Selanjutnya, menggunakan metode HTTP yang tepat seperti GET, POST, PUT, dan DELETE sesuai dengan proses yang diinginkan. Penting juga untuk memberikan respons yang jelas dalam setiap permintaan, termasuk penggunaan status HTTP yang tepat. Implementasikan otentikasi dan otorisasi untuk melindungi API dari akses yang tidak diijinkan. Selain itu, penting juga untuk memberikan pesan error dengan baik jika terdapat kesalahan. Menyediakan dokumentasi agar mudah digunkanan oleh klien atau frontend. Terakhir, melakukan monitor API secara berkala untuk memastikan kinerja dari API berjalan sesuai yang diinginkan. berikut penjelasan lebih lanjut mengenai bagaimana membuat REST API.

Menentukan Desain API

Tahapan ini mengharuskan untuk menentukan desain API yang baik sebelum mulai mengimplementasikannya, Seperti memahami kebutuhan bisnis, bahasa pemrograman dan database apa saja yang diperlukan, juga merancang endpoint yang sesuai.

Menyusun Struktur Endpoint

Struktur Endpoint dalam REST API adalah pola atau format yang digunakan untuk membuat URL yang mengarah ke proses tertentu dalam API. Struktur Endpoint membantu dalam mengarahkan atau proses apa saja yang tersedia dalam API.
Sebuah Endpoint terdiri dari beberapa komponen, termasuk domain atau host, path (lokasi url), dan parameter opsional. Path menggambarkan hierarki atau kategori dalam API, sedangkan parameter digunakan untuk mengatur permintaan yang lebih spesifik.
Contoh Struktur Endpoint:
  • GET /api/users: Mengambil daftar pengguna dari API.
  • POST /api/users: Membuat pengguna baru dalam API.
  • GET /api/users/{id}: Mengambil informasi pengguna berdasarkan ID tertentu.
  • PUT /api/users/{id}: Mengupdate informasi pengguna berdasarkan ID tertentu.
  • DELETE /api/users/{id}: Menghapus pengguna berdasarkan ID tertentu.
Dengan memiliki struktur endpoint yang baik, pengguna API dapat dengan mudah memahami cara mengakses sumber daya atau melakukan proses tertentu dalam API.

Memilih Method HTTP yang Tepat

Method HTTP merupakan bagian penting dalam pembuatan REST API karena memberikan petunjuk operasi yang berbeda terhadap endpoint yang diakses melalui API. Setiap method HTTP memiliki makna dan tujuan yang berbeda, dan digunakan untuk identifikasi proses yang akan dilakukan.
Berikut ini adalah beberapa method HTTP yang sering digunakan dalam pembuatan REST API:
  1. GET: Method ini Biasanya digunakan untuk menampilkan atau mengambil data dari server tanpa mempengaruhi atau mengubah data yang ada.
  1. POST: Method ini digunakan untuk mengirimkan data ke server dan memperoses data yang dikirim. Misalnya, ketika melakukan login dengan data yang dikirim username dan password atau menambahkan baru dalam database.
  1. PUT: Method ini digunakan untuk memperbarui atau mengganti data yang ada pada server dengan data yang dikirimkan oleh klien. Dengan menggunakan PUT, Kita dapat mengirimkan data untuk menggantikan data yang ada.
  1. DELETE: Method ini digunakan untuk melakukan proses menghapus penghapusan data tertentu pada server. Ketika menggunakan DELETE, id atau data yang dicari dengan URL atau query yang diberikan akan dihapus.
  1. PATCH: Method ini digunakan untuk memperbarui sebagian data yang ada diserver. Bedanya dengan PUT, PATCH hanya memperbarui bagian data yang diubah, tidak menggantikan keseluruhan data.

Gunakan Status Code yang Tepat (Status HTTP)

Status HTTP merupakan bagian penting dalam pembuatan REST API karena memberikan informasi tentang status dari permintaan yang dilakukan oleh Applikasi / Klien kepada server. Status HTTP terdiri dari tiga digit angka yang dikirimkan oleh server sebagai respons dari permintaan yang dilakukan. Berikut adalah beberapa status HTTP yang biasa saya gunakan.
Status Code
Penjelasan
200 [ OK ]
Menunjukkan bahwa permintaan yang dikirim berhasil dan server akan mengirimkan respons yang diharapkan. Ini adalah status yang paling umum dan sering digunakan untuk permintaan yang berhasil / Success.
201 [ Created ]
Status ini menandakan bahwa server telah berhasil membuat data baru contohnya seperti server memproses data baru untuk disimpan ke dalam database dan proses yang dilakukan terserbut berhasil. Biasanya digunakan setelah melakukan permintaan dengan method POST.
204 [ No Content ]
Status Ini menunjukkan bahwa server telah berhasil memproses permintaan, tetapi tidak ada isi konten yang dikirimkan kembali sebagai respons http. Biasanya digunakan untuk permintaan yang tidak memerlukan respons yang berisi konten .
400 [ Bad Request]
Status ini menunjukkan bahwa permintaan yang dikirim memiliki isi yang salah atau tidak dapat dipahami oleh server. Ini bisa terjadi jika ada kesalahan dalam pemformatan atau data yang dikirim.
401 [ Unauthorized ]
Status Ini menandakan bahwa akses API yang diminta memerlukan otorisasi. Request yang dilakukan harus memberikan kredensial yang valid, seperti username dan password, token, apikey, dll. agar dapat mengakses API tersebut.
403 [ Forbidden ]
Status ini menandakan bahwa server telah memahami permintaan, tetapi menolak untuk memenuhi permintaan tersebut. contohnya seperti larangan dalam mengakses file tertentu atau IP dari pengakses tidak diijinkan.
500 [ Internal Server Error ]
Status Ini adalah respons umum yang menandakan bahwa server mengalami kesalahan atau crash yang mencegahnya memproses permintaan dengan benar. bisa juga menjadi tanda adanya masalah pada server.
503 [ Service Unavailable ]
Status Ini menandakan bahwa server tidak dapat menangani permintaan saat ini karena terlalu sibuk atau sedang dalam masa perbaikan. disarankan untuk memberikan pemberitahuan untuk mencoba kembali nanti.
Catatan: Status Http diatas hanya beberapa contoh yang umum atau yang biasa saya gunakan. Terdapat banyak status HTTP lainnya yang bisa digunakan untuk keperluan dalam komunikasi antara klien dan server melalui protokol HTTP. Lebih Lengkapnya bisa lihat disini.

Menentukan Tipe konten (Content-Type)

Content-Type adalah header HTTP yang digunakan untuk menentukan tipe response dari data yang dikirimkan atau diterima melalui permintaan atau respons API. Contoh Content-Type yang umum digunakan dalam REST API adalah:
  1. application/json: Digunakan untuk menentukan bahwa data yang akan dikirim atau diterima dalam bentuk/format JSON (JavaScript Object Notation).
  1. application/xml: Digunakan untuk menentukan bahwa data yang akan dikirim atau diterima dalam bentuk/format XML (eXtensible Markup Language).
  1. application/x-www-form-urlencoded: Digunakan saat mengirim data dalam bentuk/format URL-encoded, yang umumnya digunakan dalam permintaan POST atau PUT dari form HTML.
  1. multipart/form-data: Digunakan saat mengirimkan data yang berisi file melalui permintaan POST atau PUT.
  1. text/plain: Digunakan untuk menentukan bahwa data yang dikirim atau diterima dalam bentuk/format teks biasa. Setiap kali mengirim atau menerima data melalui REST API, penting untuk menentukan header Content-Type yang sesuai agar pengguna dapat memahami dan memproses data dengan benar.

Handle Error / Kesalahan

Ketika membuat API kita perlu menghandle error/kesalahan yang ada jika terjadi kesalahan saat pengguna API melakukan request, sertakan informasi yang berguna dalam respons API. Misalnya, pesan kesalahan yang jelas, Status kode kesalahan yang terkait. contoh dari response API dalam bentuk JSON.
HTTP/1.1 200 OK Content-Type: application/json { "status": false, "message": "User atau pengguna tidak ditemukan" }

Dokumentasi

Dokumentasi merupakan tahap penting yang harus dilakukan saat pembuatan REST API.
Dokumentasi API menjelaskan cara menggunakan API, termasuk parameter yang diperlukan, endpoint apa saja yang tersedia, method dan data apa saja yang akan dapat dikirim oleh pengguna api, dan format respons yang akan dihasilkan. Dokumentasi yang baik membantu pengguna API untuk memahami dan mengintegrasikan API dengan benar. contoh tools untuk membuat api yang biasa saya gunakan yaitu POSTMAN.