Tugas RESTful API dengan Framework Laravel

Pendahuluan

API (Application Programming Interface) adalah sebuah antarmuka yang memungkinkan satu aplikasi untuk berkomunikasi dengan aplikasi lain, tanpa harus mengetahui bagaimana aplikasi tersebut diimplementasikan. API bekerja seperti jembatan yang menghubungkan dua sistem berbeda, sehingga mereka dapat saling bertukar data atau menjalankan fungsi tertentu. Dalam konteks pengembangan perangkat lunak, API memberikan cara standar bagi developer untuk mengakses fitur atau layanan dari sistem lain, seperti database, sistem operasi, atau layanan web.

Fungsi utama API dalam pengembangan adalah menyederhanakan proses integrasi antar sistem dan mempercepat pembangunan aplikasi. Dengan menggunakan API, developer tidak perlu membangun fitur dari awal, cukup menggunakan layanan yang sudah tersedia melalui API, misalnya untuk autentikasi pengguna, pembayaran online, atau pengambilan data cuaca. Selain itu, API juga membantu menjaga keamanan dan konsistensi karena hanya menyediakan akses terhadap fungsi tertentu tanpa membuka seluruh sistem secara langsung.

Agar lebih mengerti mengenai API, lihatlah ilustrasi berikut:

Web Dev

Berdasarkan ilustrasi yang diberikan, cara kerja API dapat diibaratkan seperti seorang pelayan di restoran yang menjadi perantara antara pelanggan dan dapur. Pertama, client (pelanggan) mengirimkan permintaan, misalnya "pesan nasi goreng", kepada API (pelayan). API menerima permintaan tersebut dan memvalidasi datanya sebelum meneruskannya ke server (dapur) yang bertugas memproses permintaan tersebut. Setelah server selesai memproses—dalam hal ini, memasak nasi goreng—server mengirimkan respons kembali ke API. Terakhir, API menerima hasil dari server dan mengirimkan respons akhir tersebut ke client, sehingga client mendapatkan hasil sesuai permintaannya. Proses ini menunjukkan bagaimana API memungkinkan komunikasi yang terstruktur antara pengguna dan sistem backend tanpa harus saling mengetahui cara kerja internal masing-masing pihak.

RESTful API adalah jenis API yang mengikuti prinsip REST (Representational State Transfer), yaitu sebuah arsitektur yang dirancang untuk memanfaatkan protokol HTTP secara sederhana dan efisien. RESTful API memungkinkan pertukaran data antara client dan server menggunakan metode standar seperti GET (untuk mengambil data), POST (untuk mengirim data), PUT (untuk memperbarui data), dan DELETE (untuk menghapus data). Ciri khas dari RESTful API adalah penggunaan URL untuk mewakili sumber daya (resources), dan komunikasi yang bersifat stateless, artinya setiap permintaan dari client harus memuat semua informasi yang dibutuhkan tanpa mengandalkan penyimpanan status di server. Dengan pendekatan ini, RESTful API menjadi pilihan populer dalam pengembangan web karena ringan, mudah dipahami, dan fleksibel untuk berbagai kebutuhan integrasi.

Langkah-Langkah

Install project laravel dan membuat migrasi

Pada tutorial kali ini, kita akan membuat project laravel baru sehingga memudahkan pemahaman bagaimana cara menginstal API di framework Laravel. Pertama, Instal project Laravel terlebih dahulu menggunakan Laravel Installer atau Composer

Setelah itu, buatlah migrasi dengan menggunakan kode perintah berikut

Web Dev

Kemudian, isi dengan kode berikut:

Web Dev

Setelah membuat migrasi, kita jalankan kode berikut agar masuk ke database:

Web Dev

Membuat Model

Selanjutnya yaitu membuat model dari migrasi yang telah dibuat. Gunakan perintah berikut untuk membuat model:

Web Dev

Kemudian, isi model yang telah dibuat dengan kode berikut:

Web Dev

Menginstall API Ke Laravel

Buatlah sebuah API Resource dengan cara memasukkan perintah berikut di terminal:

Web Dev

Setelah itu, isi routes/api.php dengan kode berikut:

Web Dev

Membuat Controller

Dari api resource yang telah dibuat, diperlukan Controller untuk mengatur logika. Buatlah ProductController dengan menggunakan kode berikut:

Web Dev

Kemudian, masukkan kode berikut kedalam controller yang telah dibuat:

Web Dev Web Dev Web Dev

Membuat API Resource

Setelah itu, kita perlu membuat API Resource dari product. Caranya dengan menggunakan kode berikut:

Web Dev

Kemudian, isi dengan kode dibawah dalam file ProductResource:

Web Dev

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

Web Dev Web Dev

Membuat validasi dan Error Handling

Selanjutnya, kita akan membuat validasi dan error handling. Pertama, kita akan membuat Form Request Validation. Gunakan kode berikut di terminal:

Web Dev

Lalu, gunakan kode berikut di StoreProductResource:

Web Dev

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

Web Dev

Installasi POSTMAN

Instal aplikasi Postman Disini

Setelah diinstal aplikasinya, hidupkan web server laravel dengan perintah berikut:

Web Dev

Mengakses RESTful API menggunakan POSTMAN

Tampilan saat pertama kali digunakan adalah sebagai berikut:

Web Dev

Pertama, kita akan mengakses database menggunakan informasi berikut:

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

Method: GET

Hasilnya adalah sebagai berikut:

Web Dev

Kedua, kita akan menginput data kedalam database. Gunakan informasi berikut:

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

Method: POST

Gunakan contoh data berikut:

{ "name": "IPhone 15",
"description": "RAM 8/128",
"price": 10000000.00,
"stock": 50
}

Hasilnya akan menjadi seperti berikut:

Web Dev

Masukkan tambahan kode kedalam fungsi store() sebagai validasi sebagai berikut:

Web Dev

Jika data tidak sesuai, akan seperti berikut:

Web Dev

Ketiga, kita akan mengambil data berdasarkan id. Gunakan informasi berikut:

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

Method: GET

Hasilnya adalah sebagai berikut:

Web Dev

Tambahkan kode berikut untuk memvalidasi jika id tidak ada di database

Web Dev

Hasilnya adalah sebagai berikut:

Web Dev

Keempat, kita akan mengupdate data berdasarkan id. Gunakan informasi berikut:

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

Method: PUT

Contoh datanya adalah sebagai berikut

{ "name": "Android",
"description": "RAM BANYAK",
"price": 10000000.00,
"stock": 50
}

Hasilnya adalah sebagai berikut:

Web Dev

Terakhir, kita akan menghapus data berdasarkan id. Gunakan informasi berikut:

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

Method: DELETE

Hasilnya adalah sebagai berikut:

Web Dev

Link Github: Disini

← Kembali ke Blog