tugas Restful api (application programming interface) di project laravel

A. Pendahuluan

API (Application Programming Interface) adalah sebuah antarmuka yang memungkinkan satu aplikasi berkomunikasi dengan aplikasi lain, baik itu di dalam sistem yang sama maupun melalui jaringan seperti internet. API bekerja seperti jembatan yang menyampaikan permintaan dari satu sistem ke sistem lain, lalu mengembalikan responsnya. Misalnya, ketika sebuah aplikasi cuaca menampilkan informasi suhu dari situs lain, sebenarnya aplikasi itu sedang menggunakan API untuk mengambil data tersebut secara otomatis.

Fungsi utama API adalah menyederhanakan proses integrasi antara berbagai sistem atau layanan. Dengan API, pengembang tidak perlu membangun fitur dari nol karena mereka bisa menggunakan layanan yang sudah ada, seperti otentikasi login lewat Google atau pembayaran lewat gateway tertentu. API juga membantu menjaga keamanan karena hanya data atau fungsi tertentu yang bisa diakses, sesuai dengan izin yang diberikan oleh penyedia API.

Agar lebih mudah memahami apa yang dimaksud dengan API, lihatlah gambar berikut:

Jadi, alur proses API digambarkan seperti seorang pelanggan (Client) yang memesan makanan kepada pelayan (API), lalu pelayan tersebut menyampaikan pesanan ke dapur (Server), dan akhirnya makanan yang telah dimasak dikembalikan ke pelanggan melalui pelayan. Dalam konteks sistem, Client mengirim permintaan (request) ke API, misalnya ingin melihat data atau mengirimkan informasi. API kemudian bertugas memeriksa dan memvalidasi permintaan tersebut, lalu meneruskannya ke Server yang memiliki logika utama dan data yang dibutuhkan. Setelah Server memproses permintaan dan menghasilkan respons, hasil tersebut dikirimkan kembali ke API. Terakhir, API menyampaikan hasil akhir tersebut kepada Client. Proses ini memastikan komunikasi antar sistem berjalan dengan terstruktur, aman, dan efisien tanpa harus saling mengetahui cara kerja internal masing-masing pihak.

Kemudian, ada yang dimaksud dengan RESTful API. RESTful API adalah jenis API yang mengikuti prinsip-prinsip REST (Representational State Transfer), yaitu sebuah arsitektur yang digunakan untuk membangun layanan web yang ringan, fleksibel, dan mudah diakses. RESTful API bekerja dengan menggunakan protokol HTTP dan memanfaatkan metode seperti GET, POST, PUT, dan DELETE untuk mengakses atau mengubah data di server. Setiap sumber daya (seperti data pengguna, produk, atau artikel) biasanya diwakili oleh URL tertentu, dan interaksi terhadap sumber daya tersebut dilakukan melalui permintaan HTTP sesuai dengan tujuannya.

Keunggulan RESTful API adalah kesederhanaannya—karena berbasis HTTP, API ini bisa digunakan di berbagai platform dan bahasa pemrograman. Selain itu, RESTful API bersifat stateless, artinya setiap permintaan dari client harus berisi semua informasi yang dibutuhkan server untuk memprosesnya, tanpa mengandalkan data dari permintaan sebelumnya. Hal ini membuat RESTful API efisien, mudah diatur skalanya, dan sangat cocok untuk aplikasi modern seperti web dan mobile apps.

B. Langkah Langkah

Pada tutorial kali ini, kita akan menerapkan RESTful API di project laravel. Kita akan membuat project laravel dari awal agar lebih mudah memahami bagaimana RESTful API berkerja di framework Laravel. Pertama, install Laravel menggunakan Laravel Installer atau Composer

Setelah menginstall project laravel, buatlah sebuah migrasi database sederhana. Gunakan kode terminal berikut:

Kemudian, masukkan kode program berikut:

Setelah dimasukkan ke file, lakukan migrasi dengan cara memasukkan kode berikut ke terminal:

Setelah itu, buatlah model berdasarkan migrasi yang telah dibuat. Lakukan dengan kode di terminal berikut:

Kemudian, masukkan kode berikut di model:

Selanjutnya, kita akan membuat Route API. Buatlah dengan memasukkan kode di terminal berikut:

Kemudian, masukkan kode berikut didalam routes/api.php

Setelah itu, buatlah controller bernama ProductController dengan kode terminal berikut:

Lalu, 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.

Masukkan kode berikut di terminal:

Kemudian, masukkan kode berikut:

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

Kemudian, kita akan membuat sebuah error andling dan validation. Pertama, kita akan membuat Form Request Validation. Gunakan kode berikut di terminal:

Kemudian, masukkan kode berikut di file StoreProductRequest.php

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

Setelah itu, kita akan menggunakan aplikasi API bernama POSTMAN. Download terlebih dulu aplikasinya disini.

Kemudian, untuk mengakses API yang telah kita buat, hidupkan web server Laravel dengan menggunakan kode berikut:

Tampilan Postman saat pertama kali akan seperti berikut:

1. Melihat seluruh data

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

Method: GET

Hasilnya akan seperti berikut

2. Menambah Data

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

Method: POST

Contoh data yang dimasukkan:

{ 
"name": "HP Samsung", 
"description": "HP Samsung A56 Terbaru", 
"price": 500000.00, 
"stock": 50 
}

Tambahkan kode berikut untuk menangani handling error:

Hasilnya jika memasukkan data yang salah akan seperti berikut:

3. Mengambil data sesuai dengan ID

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

Method: GET

Hasilnya akan seperti berikut:

Kemudian, tambahkan kode ini untuk error handling:

Hasilnya akan seperti berikut:

4. Mengupdate daat

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

Hasilnya akan seperti berikut:

5. Menghapus data

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

Hasilnya akan seperti berikut:

Link Github: https://github.com/GhaziFadhlullah/pert-15

Leave a Comment

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