API (Application Programming Interface) adalah antarmuka yang memungkinkan dua aplikasi atau sistem perangkat lunak berbeda untuk saling berkomunikasi dan bertukar data dengan menggunakan serangkaian aturan, protokol, atau kode tertentu. Fungsi utama API adalah sebagai jembatan penghubung antara aplikasi, sehingga fitur atau data dari satu aplikasi dapat digunakan oleh aplikasi lain tanpa harus membangun semuanya dari awal. Dengan adanya API, pengembang dapat mengintegrasikan berbagai layanan, seperti Google Maps, pembayaran online, atau login media sosial, ke dalam aplikasi mereka dengan lebih mudah dan efisien. Selain itu, API juga membantu mempercepat proses pengembangan, meningkatkan fleksibilitas, dan menghemat biaya karena tidak perlu membuat semua fitur secara mandiri. API sangat penting dalam dunia pengembangan aplikasi modern karena memungkinkan inovasi dan kolaborasi antar sistem yang berbeda secara praktis dan aman
Untuk memudahkan memahami apa itu API, coba perhatikan gambar berikut:
Dalam proses ini, Client (pelanggan) mengirimkan permintaan (request) kepada API (pelayan), yang bertugas menerima dan memvalidasi permintaan tersebut sebelum meneruskannya ke Server (dapur) untuk diproses. Setelah server selesai memproses permintaan, hasilnya (response) dikirimkan kembali ke API, yang kemudian meneruskan hasil akhir tersebut kepada client. Dengan demikian, API berfungsi sebagai perantara yang memastikan komunikasi antara client dan server berjalan lancar, serta memastikan data yang diterima dan dikirim sudah valid dan sesuai kebutuhan. Proses ini memudahkan integrasi antara aplikasi yang berbeda tanpa client harus berinteraksi langsung dengan sistem backend, sehingga meningkatkan keamanan, efisiensi, dan kemudahan dalam pengembangan aplikasi
RESTful API (Representational State Transfer Application Programming Interface) adalah sebuah antarmuka yang memungkinkan aplikasi atau sistem yang berbeda untuk saling berkomunikasi dan bertukar data melalui internet dengan mengikuti prinsip-prinsip arsitektur REST. RESTful API menggunakan metode HTTP standar seperti GET, POST, PUT, dan DELETE untuk melakukan operasi pada sumber daya yang diidentifikasi oleh URL unik. Salah satu ciri utama RESTful API adalah sifatnya yang stateless, artinya setiap permintaan dari client ke server harus memuat semua informasi yang diperlukan tanpa menyimpan status permintaan sebelumnya di server. Selain itu, data yang ditransfer biasanya menggunakan format yang mudah dipahami seperti JSON atau XML, sehingga memudahkan integrasi lintas platform. RESTful API banyak digunakan dalam pengembangan aplikasi modern karena sederhana, mudah diimplementasikan, serta mendukung skalabilitas dan interoperabilitas antar sistem
Pada tutorial kali ini, kita akan membuat bagaimana RESTful API berkerja di framework Laravel. Tutorial ini membuat project baru agar mempermudah pemahaman bagaimana cara menggunaakn RESTful API dengan mudah.
Pertama, instal project laravel terlebih dahulu menggunakan Laravel Installer atau menggunakan Composer.
Setelah itu, Buatlah sebuah migrasi seperti gambar berikut:
Setelah itu, masukkan kode berikut untuk migrasi database:
Setelah dibuat migrasinya, jalankan kode berikut di terminal:
Kemudian, Buatlah sebuah model berdasarkan migrasi yang telah dibuat. Caranya dengan menggunakan kode berikut:
Setelah itu, tambahkan kode berikut di model Product:
Buatlah sebuah API route dengan menggunakan kode berikut:
Setelah itu, tambahkan kode berikut di routes/api.php
Kemudian, buatlah sebuah controller bernama ProductController dengan kode terminal berikut:
Setelah itu, masukkan kode berikut di controller yang telah dibuat:
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.
Ketikkan kode berikut di terminal:
Lalu, masukkan kode berikut di resource\ProductResource.php
Masukkan kedalam show() di ProductController agar resource terpanggil:
Buatlah sebuah validation dengan cara mengetikkan kode berikut di terminal:
Setelah itu, tambahkan kode berikut ke StoreProductRequest:
Kemudian, tambahkan kode berikut di app/Exceptions/Handler.php untuk menangani Exception:
Install aplikasi POSTMAN untuk mengakses API yang telah dibuat disini
Setelah itu, hidupkan web server dari laravel dengan cara memasukkan kode berikut di terminal:
Tampilan POSTMAN pertama kali akan seperti ini:
Klik send API Request.
Untuk mengambil seluruh data dari API, gunakan informasi berikut:
URL: http://127.0.0.1:8000/api/products
Method: GET
Klik send dan hasilnya akan seperti berikut:
Untuk memasukkan data dari API, gunakan informasi berikut:
URL: http://127.0.0.1:8000/api/products
Method: POST
Berikut adalah contoh masukan data jsonnya:
{
"name": "HP INFINIX",
"description": "INFINIX A20S Ultra",
"price": 2000000.00,
"stock": 25
}
Klik send dan hasilnya akan seperti berikut:
Masukkan kode berikut untuk menambahkan fitur validasi:
Maka, jika kita menginput data yang kurang/salah hasilnya akan seperti berikut:
Untuk memanggil data yang spesifik, gunakan informasi berikut:
URL: http://127.0.0.1:8000/api/products/1
Method: GET
Maka, hasilnya adalah sebagai berikut:
Untuk melakukan validasi jika data tidak ada dalam database, tambahkan kode berikut di fungsi show()
Jika mengambil id yang tidak ada di database, akan seperti berikut:
Untuk mengupdate data, gunakan informasi berikut:
URL: http://127.0.0.1:8000/api/products/1
Method: PUT
Gunakan contoh data seperti berikut:
{
"name": "HP Xiaomi ",
"description": "XIamoi MI 14 Ultra",
"price": 2000000.00,
"stock": 3
}
Klik send maka hasilnya seperti berikut:
Untuk menghapus data, gunakan informasi berikut:
URL: http://127.0.0.1:8000/api/products/1
Method: DELETE
Klik send maka hasilnya seperti berikut: