Tugas API Laravel

A. Pendahuluan

API (Application Programming Interface) adalah sekumpulan aturan dan protokol yang memungkinkan berbagai aplikasi perangkat lunak untuk berkomunikasi satu sama lain. Anggap saja API sebagai “pelayan” atau “jembatan” di dunia digital. Saat Anda menggunakan sebuah aplikasi, misalnya memesan ojek online, aplikasi tersebut perlu mengakses data dari aplikasi lain, seperti peta untuk navigasi. API inilah yang memungkinkan permintaan data (seperti lokasi Anda) dikirim ke server penyedia peta dan kemudian menerima respons (berupa tampilan peta) untuk ditampilkan di aplikasi ojek online Anda. Anda sebagai pengguna tidak perlu tahu kerumitan proses di baliknya; API menangani semuanya di belakang layar.

Fungsi utama API adalah untuk mengintegrasikan dan memfasilitasi pertukaran data antar platform atau aplikasi yang berbeda tanpa harus mengetahui cara kerja internal masing-masing. Dengan adanya API, pengembang tidak perlu membangun setiap fitur dari nol. Mereka dapat memanfaatkan fungsionalitas yang sudah ada dari aplikasi lain. Contohnya, pengembang aplikasi e-commerce dapat menggunakan API dari sistem pembayaran untuk memproses transaksi, sehingga mereka tidak perlu repot membuat sistem pembayaran sendiri. Hal ini mempercepat proses pengembangan, meningkatkan efisiensi, dan memungkinkan terciptanya aplikasi yang lebih kaya fitur dengan menghubungkan berbagai layanan menjadi satu kesatuan yang utuh.

Untuk lebih jelasnya, coba lihat gambar berikut:

Komponen-komponen API adalah seperti berikut:

  1. Request (Permintaan)
    • URL/Endpoint
    • HTTP Method
    • Headers
    • Body/Payload
  2. Response (Respons)
    • Status Code
    • Headers
    • Body/Data

Berikut ini merupakan ilustrasi komponen utama API

RESTful API adalah sebuah API yang dirancang mengikuti gaya arsitektur REST (Representational State Transfer), yang saat ini menjadi standar paling populer untuk membangun layanan web. Ini bukanlah sebuah protokol yang kaku, melainkan serangkaian prinsip dan panduan desain. Dalam konsep REST, semua informasi dianggap sebagai “sumber daya” (resource), misalnya data pengguna atau detail produk, yang dapat diakses melalui URL unik. Untuk memanipulasi sumber daya ini, RESTful API memanfaatkan metode standar HTTP yang sudah ada: GET untuk mengambil data, POST untuk membuat data baru, PUT/PATCH untuk memperbarui data yang sudah ada, dan DELETE untuk menghapusnya. Salah satu ciri utamanya adalah bersifat stateless (tanpa status), yang berarti setiap permintaan dari client harus berisi semua informasi yang dibutuhkan server untuk memprosesnya, karena server tidak menyimpan informasi sesi dari permintaan sebelumnya. Pendekatan ini membuat API menjadi lebih sederhana, andal, dan mudah untuk diskalakan.

B. Langkah-Langkah

Pada tutorial ini, kita akan membuat sebuah API di project laravel. Tutorial ini akan membuat project baru laravel agar dapat mudah dipahami dari awal hingga akhir. API yang dibuat akan berfungsi sebagai CRUD sederhana dengan database SQLite.

Pertama-tama, buatlah sebuah project laravel terlebih dahulu menggunakan Laravel Installer atau composer.

Setelah menginstall project laravel, kita akan membuat migrasi data. Masukkan kode berikut di terminal:

Setelah dijalankan, masukkan kode berikut ke file migrasi yang telah dibuat. Letaknya di database/migration:

Setelah dimasukkan, lakukan migrasi dengan memasukkan kode berikut di terminal:

Jika sudah, maka akan seperti berikut:

Setelah itu, kita akan membuat model berdasarkan migrasi yang telah kita buat. Caranya dengan memasukkan kode berikut di terminal:

Lalu, masukkan kode berikut di model Product yang yang telah dibuat:

Setelah membuat model dan migrasi, maka kita akan bangun API nya. Pertama, buat Route API nya dengan cara memasukkan kode berikut:

Kemudian, masukkan kode berikut di routes/api.php

Kedua, kita akan membuat ProductController. Caranya dengan memasukkan kode berikut:

Setelah itu, masukkan kode berikut ke controller:

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 API Resouce dengan memasukkan kode berikut:

Kemudian, masukkan kode berikut di file ProductResource:

Untuk menggunakan resource yang telah dibuat, tambahkan kode berikut di index() controller dan show() controller:

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

Kemudian, masukkan kode berikut:

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

Langkah selanjutnya yaitu mencoba menggunakan api yang telah kita buat. Caranya yaitu menggunakan aplikasi Postman. Aplikasi Postman dapat diunduh disini. Install aplikasi sesuai instruksi.

Kemudian, buka web server dari laravel menggunakan kode berikut:

Selanjutnya, buka aplikasi Postman. Tampilan awal akan seperti ini:

1. Memanggil semua data

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

products

Method: Get

Hasilnya adalah sebagai berikut:

2. Menambahkan produk

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

Method: POST

Contoh datanya adalah seperti berikut. Masukkan di body dengan format JSON:

{ 
"name": "IPHONE 18", 
"description": "IPHONE 18 Terbaru", 
"price": 123000000.00, 
"stock": 25 
}

Klik send dan hasilnya akan seperti berikut:

Jika kita masukkan kolom yang salah atau data yang salah, maka hasilnya seperti berikut:

Untuk menampilkan exception seperti digambar, tambahkan kode berikut di fungsi store() di controller:

3. Mencari data berdasarkan ID
URL: http://127.0.0.1:8000/api/products/1

Method: GET

Hasilnya adalah sebagai berikut:

Jika ID tidak ada di database, maka akan seperti berikut:

Untuk menampilkan exception seperti diatas, tambahkan kode berikut di fungsi show() di controller:

4. Mengupdate Data

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

Method: PUT

Hasilnya adalah sebagai berikut:

5. Menghapus data

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

Method: DELETE

Hasilnya adalah sebagai berikut:

Link Github: https://github.com/NiaRamadhani31/Laravel-api

Comments

Leave a Reply

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