Tugas API RESTful Framework Laravel

A. Pendahuluan

Application Programming Interface (API) adalah perantara atau jembatan penghubung yang memungkinkan dua aplikasi atau sistem yang berbeda untuk saling berkomunikasi, bertukar data, dan berbagi fungsionalitas. Anda bisa membayangkannya seperti seorang pelayan di restoran. Anda (sebagai sebuah aplikasi) tidak perlu tahu bagaimana cara dapur (aplikasi lain/server) memasak pesanan Anda. Anda cukup memberitahu pelayan (API) apa yang Anda inginkan dari menu (daftar fungsi yang tersedia), dan pelayan akan mengantarkan pesanan tersebut dari dapur kembali ke meja Anda. Dengan kata lain, API menyembunyikan kompleksitas sistem lain dan menyediakan cara yang terstandarisasi bagi sebuah program untuk meminta layanan atau data dari program lain tanpa perlu mengetahui detail implementasi internalnya.

Dalam dunia pengembangan perangkat lunak, API memegang peranan yang sangat krusial karena berbagai fungsinya yang vital. Fungsi utamanya adalah untuk integrasi dan efisiensi. Daripada membangun setiap fitur dari nol, pengembang dapat menggunakan API untuk mengintegrasikan fungsionalitas yang sudah ada dari layanan pihak ketiga. Contohnya, sebuah aplikasi ojek online tidak perlu membangun sistem petanya sendiri; ia cukup menggunakan API dari Google Maps untuk menampilkan peta, mencari rute, dan menghitung jarak. Hal ini secara drastis menghemat waktu, sumber daya, dan biaya pengembangan.

Perhatikan ilustarsi berikut ini:

Proses dimulai saat Client mengirimkan permintaan—misalnya, memesan nasi goreng—kepada API. Dalam hal ini, API berperan sebagai perantara yang menerima dan memvalidasi permintaan dari Client. Setelah itu, API meneruskan permintaan tersebut ke Server, yaitu bagian yang bertugas memproses permintaan secara langsung, seperti dapur yang memasak makanan.

Setelah Server selesai memproses—misalnya setelah nasi goreng selesai dimasak—Server akan mengirimkan hasilnya kembali ke API. Kemudian, API menyampaikan respon akhir tersebut kepada Client, dalam bentuk hasil jadi yang siap dikonsumsi. Dari alur ini, terlihat bahwa API bertindak sebagai jembatan komunikasi antara pengguna (Client) dan sistem backend (Server), memastikan permintaan diterima, diteruskan, serta hasilnya dikembalikan dengan benar dan aman.

RESTful API adalah jenis API yang mengikuti prinsip arsitektur REST (Representational State Transfer), yaitu seperangkat aturan yang digunakan untuk membangun layanan web yang sederhana dan efisien. Dalam RESTful API, komunikasi antara client dan server dilakukan melalui protokol HTTP, di mana setiap permintaan (request) mewakili aksi tertentu seperti mengambil data (GET), mengirim data baru (POST), memperbarui data (PUT), atau menghapus data (DELETE). RESTful API bersifat stateless, artinya setiap permintaan dari client harus mengandung semua informasi yang dibutuhkan server untuk memprosesnya, tanpa bergantung pada permintaan sebelumnya. Keunggulan dari RESTful API terletak pada kesederhanaannya, skalabilitas tinggi, dan kemampuannya untuk digunakan di berbagai platform dengan format data yang umum seperti JSON atau XML.

B. Langkah-langkah

Pada tutorial kali ini, kita akan membangun sebuah API CRUD sederhana di framework Laravel. Tutorial ini mulai dari instalasi laravel dari awal hingga terbuatnya API CRUD. Pertama-tama, instalasi project Laravel menggunakan Laravel Installer atau menggunakan Composer

Setelah sukses menginstall project Laravel, selanjutnya yaitu membuat migrasi database dengan kode terminal berikut:

Kemudian, isilah migrasi dengan kode berikut:

Setelah dibuat file migrasi, jalankan dengan kode berikut:

Selanjutnya, kita perlu membuat model yang telah dibuat di migrasi. Caranya dengan memasukkan perintah ini ke terminal:

Lalu, tambahkan kode berikut di model Product:

Selanjutnya, kita perlu menginstal Route API dengan cara mengetik kode berikut di terminal:

Kemudian, tambahkan kode berikut di routes/api.php

Setelah mengistal Route API, kita perlu membuat ProductController dengan mengetik kode berikut di terminal:

Kemudian, tambahkan kode berikut di ProductController:

Kemudian, kita akan membuat API Resource. Fitur yang memungkinkan untuk mentransformasi model data atau collection menjadi format JSON yang konsisten dan mudah dikustomisasi untuk API response. API Resource berfungsi sebagai layer transformasi antara model Eloquent dan JSON response yang dikirim ke client sehingga dapat digunakan untuk Mengontrol format output JSON, Menyembunyikan field sensitive, Menambahkan field computed dan Membuat response yang konsisten.

Buat ProductResource dengan cara mengetikkan kode berikut di terminal:

Kemudian, tambahkan kode berikut di ProductResource:

Untuk menggunakan resource yang telah dibuat di controller, ubah function index() dan show() di ProductController seperti berikut:

Setelah itu, kita akan membuat validasi dan error handling terhadap API jika suatu saat terdapat error. Gunakan kode berikut di terminal:

Kemudian, tambahkan kode berikut di StoreProductRequest

Lalu, tambahkan kode berikut di app/Exceptions/Handler.php untuk menangani error.

Setelah itu, kita perlu menginstal aplikasi untuk menampuk dan mengirimkan file JSON yaitu POSTMAN. aplikasi dapat didownload disini

Kemudian, buka web server dari Laravel dengan mengetik kode berikut di terminal:

Jika Postman sudah terinstall, maka tampilan awal akan seperti ini:

1. Mengambil semua data di database

URL: http://127.0.0.1:8000/api/products
Method: GET

Masukkan informasi tersebut di postman. Hasilnya akan seperti ini:

2. Memasukkan data ke database

URL: http://127.0.0.1:8000/api/products
Method: POST

Contoh data yang dimasukkan adalah sebagai berikut:

{
“name”: “Asus Laptop”,
“description”: “Dengan RTX 3050”,
“price”: 19999999.00,
“stock”: 25
}

Hasilnya adalah sebagai berikut:

Tambahkan kode berikut kedalam fungsi store() untuk menghandle error:

Jika data yang dimasukkan terdapat kesalahan, maka hasilnya akan seperti berikut:

3. Mengambil data berdasarkan ID

URL: http://127.0.0.1:8000/api/products/1
Method: GET

Hasilnya adalah sebagai berikut:

Tambahkan kode beikut agar menghandle error jika id tidak ditemukan:

Hasilnya adalah sebagai berikut:

4. Mengupdate Data

URL: http://127.0.0.1:8000/api/products/1
Method: PUT

Contoh data yang dimasukkan:

{
“name”: “Asus Jadul”,
“description”: “Dengan Intel HD Graphic”,
“price”: 200000.00,
“stock”: 25
}

Hasilnya akan seperti berikut:

5. Menghapus data berdasarkan ID

URL: http://127.0.0.1:8000/api/products/1
Method: DELETE

Hasilnya adalah sebagai berikut:

Link Github: https://github.com/Ridhoradyapratama/laravel-ridho

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top