Pendahuluan
API (Application Programming Interface) merupakan sekumpulan aturan dan protokol yang memungkinkan
aplikasi berbeda platform untuk berkomunikasi dan saling terintegrasi.
Kegunaan API
- Integrasi dengan layanan pihak ketiga
- Memisahkan frontend dan backend
- Mendukung multiple platform (web, mobile, desktop)
- Memungkinkan microservices architecture
Ilustrasi penggunaan API

Komponen Utama API (Request dan Response) :
- Request (Permintaan)
- URL/Endpoint
- HTTP Method
- Headers
- Body/Payload
- Response (Respons)
- Status Code
- Headers
- Body/Data
Ilustrasi komponen utama API

Jenis-Jenis API :
- Web API : Menggunakan protokol HTTP/HTTPS
- REST API: Mengikuti arsitektur REST
- GraphQL API: Query language untuk API
- SOAP API: Protocol berbasis XML
- Library API: Interface untuk library atau framework
- Operating System API: Interface dengan sistem operasi
- Database API: Interface untuk mengakses database
RESTful API
REST (Representational State Transfer) adalah arsitektur untuk merancang web services. REST bukan protokol
atau standar, melainkan seperangkat prinsip desain.
Prinsip REST (Representational State Transfer)
- Client-Server Architecture
Client dan server terpisah dan dapat berkembang secara independen. - Stateless
Setiap request harus berisi semua informasi yang diperlukan server untuk memproses request tersebut. - Cacheable
Response harus dapat di-cache untuk meningkatkan performa. - Uniform Interface
Interface yang konsisten antara client dan server. - Layered System
Arsitektur berlapis yang memungkinkan scalability. - Code on Demand (Opsional)
Server dapat mengirim kode executable ke client
Langkah Pengerjaan
Berikut adalah langkah-langkah untuk menerpakan RESTful API pada project Laravel menggunakan POSTMAN
A. Set up project, Database, dan migrasi
- untuk langkah pertama yang harus dikerjakan adalah membuat project laravel baru, atau bisa menggunakan project laravel yang sudah ada. pada kesempatan kali ini saya akan membuat project baru, silahkan buka cmder lalu ketikkan kode ini
composer create-project laravel/laravel api-project
apabila sudah dijalankan pastikan tampilan cmder menjadi seperti ini dan tunggu prosesnya selesai

apabila telah selesai, silahkan buka proyeknya di code editor yang akan digunakan
2. Buat migrasi databasenya dengan menggunakan kode berikut di terminal:
php artisan make:migration create_products_table
apabila sudah dibuat, maka buatlah kode di function up nya menjadi seperti ini

lalu jalankan lah migrasi terrsebut dengan cara mengetikkan kode ini pada terminal
php artisan migrate
B. Membuat model
- Ketikkan pada terminal kode berikut ini
php artisan make:model Product
apabila sudah dijalankan, maka isikan lah kodenya menjadi seperti ini

C. API Routes
- Untuk langkah pertama, yang harus dilakukan karena ini adalah membuat API pertama kali, jadi diperlukan instalasi untuk API itu sendiri, langkah yang harus dikerjakan adalah mengetikkan kode ini pada terminal code editor
php artisan install:api
lalu apabila telah selesai, maka carilah pada file routes/api.php dan isikan kode berikut ini

C. API Controller
- Langkah selanjutnya adalah membuat controller bernama ProductController, buka terminal lalu jalankanlah kode berikut ini
php artisan make:controller ProductController --api
lalu carilah pada folder controller dengan nama file nya adalah dan buatlah kodenya menjadi seperti ini
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class ProductController extends Controller
{
public function index()
{
$products = Product::all();
return response()->json([
'status' => 'success',
'data' => $products
]);
}
public function store(Request $request)
{
$validated = $request->validate([
'name' => 'required|string|max:255',
'description' => 'required|string',
'price' => 'required|numeric|min:0',
'stock' => 'required|integer|min:0'
]);
$product = Product::create($validated);
return response()->json([
'status' => 'success',
'message' => 'Product created successfully',
'data' => $product
], 201);
}
public function show(Product $product)
{
return response()->json([
'status' => 'success',
'data' => $product
]);
}
public function update(Request $request, Product $product)
{
$validated = $request->validate([
'name' => 'sometimes|string|max:255',
'description' => 'sometimes|string',
'price' => 'sometimes|numeric|min:0',
'stock' => 'sometimes|integer|min:0'
]);
$product->update($validated);
return response()->json([
'status' => 'success',
'message' => 'Product updated successfully',
'data' => $product
]);
}
public function destroy(Product $product)
{
$product->delete();
return response()->json([
'status' => 'success',
'message' => 'Product deleted successfully'
]);
}
}
D. API Resources (Data Transformation)
API Resources (Data Transformation) berguna 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.
- Membuat Resource
ketikkan lah kode berikut ini pada terminal kode editor yang digunakan
php artisan make:resource ProductResource
lalu carilah file yg telah dibuat tadi pada app/http/resources/ProductResource lalu buatlah kodenya menjadi seperti ini

2. untuk menggunakan resources yang telah dibuat tersebut, carilah file controller yang tadi telah dibuat dan ubah function index() dan show() di ProductController tersebut menjadi seperti ini :


E. Validasi dan Error Handling
- Form Request Validation
Masukkan lah kode berikut ini pada terminal kode editor
php artisan make:request StoreProductRequest
lalu cari file yang baru dibuat tersebut dan ubahlah kodenya menjadi seperti ini

selanjutnya adalah menambahkan kode program untuk menanggani Exception, silahkan buat folder baru dengan nama Exception dan buat file Handler didalamnya, untuk lebih jelas adalah sebagai berikut app/Exceptions/Handler.php. silahkan masukkan kode program berikut ini :

F. Mengakses API Products dengan Postman
- Untuk pertama tama silahkan download terlebih dahulu postman pada link berikut ini
apabila sudah didownload maka silahkan atur dan set up sampai tampilan postman tersebut menjadi seperti ini

2. silahkan buka project laravel yang sudah dibuat tadi lalu masukkan kode ini pada terminalnya
php artisan serve
hal ini dilakukan agar bisa mengakses API yang telah kita buat sebelumnya
3. Setelah itu masuk ke aplikasi postman tadi, lalu untuk mengambil semua product nya gunakan url dan method berikut ini
URL = http://127.0.0.1:8000/api/products
Method = GET
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 otomatin 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.
4. Kemudian, kita akan mencoba untuk menambahkan product, caranya dengan menggunakan URL berikut di Postman :
URL: http://127.0.0.1:8000/api/products
Method: POST
lalu pada body di method post tersebut, pilih raw dan masukkan kode berikut ini
{
"name": "Smartphone Android",
"description": "Smartphone dengan kamera 108MP dan RAM 8GB",
"price": 4500000.00,
"stock": 25
}
maka tampilannya akan menjadi seperti ini apabila sudah di send dan dijalankan

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
{
"name": "",
"description": "Iphone 17",
"price": 0,
"stock": 30
}
akan menghasilkan pesan seperti ini

5. GET – Mengambil Product Berdasarkan ID
Caranya dengan menggunakan url berikut di Postman:
untuk URL nya adalah ini : URL: http://localhost:8000/api/products/{id} untuk kesempatan kali ini akan digunakan Contoh:
http://localhost:8000/api/products/1
dan untuk method nya adalah : GET
hasilnya akan terlihat seperti ini apabila dijalankan pada postmant

jika ingin menampilkan kode error yaitu kode 404 maka bisa dengan menambahkan ini pada function view di file ProductController.php

maka tampilannya akan terlihat seperti ini :
6. PUT – 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
Masukkan contoh data berikut:
{
"name": "Laptop Gaming Updated",
"description": "Laptop gaming dengan spek tinggi dan SSD 1TB",
"price": 16500000.00,
"stock": 8
}
maka tampilannya akan terlihat seperti ini :

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