Tugas API Project Laravel

Pendahuluan

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:

1.png

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

Langkah-Langkah

Migrasi dan pembuatan model

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:

1.png

Setelah itu, masukkan kode berikut untuk migrasi database:

1.png

Setelah dibuat migrasinya, jalankan kode berikut di terminal:

1.png

Kemudian, Buatlah sebuah model berdasarkan migrasi yang telah dibuat. Caranya dengan menggunakan kode berikut:

1.png

Setelah itu, tambahkan kode berikut di model Product:

1.png

Membuat API dan Controller

Buatlah sebuah API route dengan menggunakan kode berikut:

1.png

Setelah itu, tambahkan kode berikut di routes/api.php

1.png

Kemudian, buatlah sebuah controller bernama ProductController dengan kode terminal berikut:

1.png

Setelah itu, masukkan kode berikut di controller yang telah dibuat:

1.png
1.png
1.png

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:

1.png

Lalu, masukkan kode berikut di resource\ProductResource.php

1.png

Masukkan kedalam show() di ProductController agar resource terpanggil:

1.png

Membuat Validation dan Exception

Buatlah sebuah validation dengan cara mengetikkan kode berikut di terminal:

1.png

Setelah itu, tambahkan kode berikut ke StoreProductRequest:

1.png

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

1.png

Install Postman

Install aplikasi POSTMAN untuk mengakses API yang telah dibuat disini

Setelah itu, hidupkan web server dari laravel dengan cara memasukkan kode berikut di terminal:

1.png

Mengakses RESTful API menggunakan POSTMAN

Tampilan POSTMAN pertama kali akan seperti ini:

1.png

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:

1.png

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:

1.png

Masukkan kode berikut untuk menambahkan fitur validasi:

1.png

Maka, jika kita menginput data yang kurang/salah hasilnya akan seperti berikut:

1.png

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:

1.png

Untuk melakukan validasi jika data tidak ada dalam database, tambahkan kode berikut di fungsi show()

1.png

Jika mengambil id yang tidak ada di database, akan seperti berikut:

1.png

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:

1.png

Untuk menghapus data, gunakan informasi berikut:

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

Method: DELETE

Klik send maka hasilnya seperti berikut:

1.png