17 Juni 2025 ~ Oleh Surya Andika
API (Application Programming Interface) merupakan sekumpulan aturan dan protokol yang memungkinkan aplikasi berbeda platform untuk berkomunikasi dan saling terintegrasi.
API (Application Programming Interface) adalah media untuk komunikasi antara aplikasi yang berbeda. Dalam era digital saat ini, hampir semua aplikasi modern menggunakan API untuk:
Agar lebih memahami konsep dasar API berikut analogi API pemesanan makanan pada restoran.
Berikut ini merupakan ilustrasi komponen utama API
REST (Representational State Transfer) adalah arsitektur untuk merancang web services. REST bukan protokol atau standar, melainkan seperangkat prinsip desain.
Client dan server terpisah dan dapat berkembang secara independen.
Setiap request harus berisi semua informasi yang diperlukan server untuk memproses request tersebut.
Response harus dapat di-cache untuk meningkatkan performa.
Interface yang konsisten antara client dan server.
Arsitektur berlapis yang memungkinkan scalability.
Server dapat mengirim kode executable ke client
| GET | /api/users | # Mendapatkan semua users |
| GET | /api/users/1 | # Mendapatkan user dengan ID 1 |
| POST | /api/users | # Membuat user baru |
| PUT | /api/users/1 | # Update user dengan ID 1 |
| DELETE | /api/users/1 | # Hapus user dengan ID 1 |
Buat Project Laravel baru atau bisa juga mengunakan project laravel yang sudah ada. Untuk membuat project laravel baru ketikkan kode berikut pada aplikasi CMD
composer create-project laravel/laravel api-project
Migrasi database dengan menggunakan kode berikut:
php artisan make:migration create_products_table
Apabila sudah, lalu buat kode pada api-project/database/migration/****_**_**_******_create_product_table.php menjadi seperti ini
lalu jalankan migration
php artisan migrate
Ketikkan pada terminal kode berikut ini
php artisan make:model Product
Karena membuat API pertama kali, jadi harus instalasi untuk API terlebih dahulu dengan menuliskan kode program berikut ini:
php artisan install:api
Membuat controller pada terminal dengan nama ProductController
php artisan make:controller ProductController --api
Lalu buatkan kode pada app/Http/Controllers/ProductController.php menjadi seperti ini:
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.
Gunakan kode berikut ini pada CMD yang digunakan
php artisan make:resource ProductResource
Lalu buat kode pada api-project/app/Http/Resource/ProductResource.php menjadi seperti ini
Cari file Controller yang telah dibuat dan ubah function_index() dan show() pada ProductController menjadi seperti ini:
Masukkan kode berikan pada CMD yang digunakan
php artisan make:request StoreProductRequest
Lalu tambahkan kode program untuk menanggani Exception, buat folder baru dengan nama Exception dan buat file Handler didalamnya, pada app/Exceptions/Handler.php. silahkan masukkan kode program berikut ini :
Untuk memastikan API yang telah dibuat berjalan dengan baik maka perlu dilakukan percobaan mengakses API tersebut, untuk testing menggunakan POSTMAN, silahkan download dan install POSTMAN pada computer dan lakukan testing API yang telah dibuat, sebelum melakukan testing silahkan tonton video tutorial cara penggunaan POSTMAN pada link berikut :
Klik Disini atau Disini
silahkan buka project laravel yang sudah dibuat tadi lalu masukkan kode ini pada terminalnya
php artisan serve
Setelah itu masuk ke aplikasi postman tadi, lalu untuk mengambil semua product nya gunakan url dan method berikut ini
Method = GET
URL = http://127.0.0.1:8000/api/products
silahkan masukkan pada postman dan apabila sukses maka akan menghasilkan tampilan berikut ini
Mengapa URL yang diperlukan adalah api/products bukan /products? Karena, route kita berada di api.php sehingga Laravel akan otomatis menggunakan prefix berdasarkan routes yang dibuat. Namun, jika kita masukkan API Routes tadi kedalam file web.php, maka prefix yang digunakan adalah 127.0.0.1:8000/products.
Kemudian, kita akan mencoba untuk menambahkan product, caranya dengan menggunakan URL berikut di Postman :
Jika kita ingin menerapkan handling untuk exception memasukkan data yang salah, tambahkan kode berikut di Controller/ProductController :
untuk menguji nya, akan kita masukkan data yang salah, sebagai contohnya adalah sebagai berikut
GET - Mengambil Product Berdasarkan ID
Caranya dengan menggunakan url berikut di Postman:
URL: http://localhost:8000/api/products/{id}
Contoh: http://localhost:8000/api/products/1
jika ingin menampilkan kode error yaitu kode 404 maka bisa dengan menambahkan ini pada function view di file ProductController.php
GET - Update Product
selanjutnya adalah melakukan update data gunakan, URL berikut di Postman
URL: http://localhost:8000/api/products/{id}
contohnya URL: http://localhost:8000/api/products/{1}
Method: PUT
DELETE - Hapus Product
Selanjutnya apabila ingin melakukan delete data, maka bisa dengan menggunakan ini
URL: http://localhost:8000/api/products/{id}
contohnya: http://localhost:8000/api/products/1
Method: DELETE
maka tampilannya akan menjadi seperti ini
Link Github: Klik Disini