⚙️
Sisi Server

Membangun REST API yang Mudah Dikembangkan dengan Laravel

3 Desember 20248 menit baca
LaravelPHPAPISisi Server

Setelah membangun puluhan API dengan Laravel di berbagai proyek, saya ingin berbagi pola dan strategi yang terbukti bekerja di produksi. Bukan teori — ini dari pengalaman langsung.

Struktur Folder yang Bersih

Salah satu kesalahan umum adalah menaruh semua logika di Controller. Saya menggunakan pola Repository-Service-Controller:

  • Controller: Hanya menangani request/response HTTP dan validasi input
  • Service: Logika bisnis — semua aturan bisnis ada di sini
  • Repository: Query basis data — abstraksi dari Eloquent/raw query

Dengan pola ini, unit test menjadi jauh lebih mudah dan kode lebih mudah digunakan ulang.

Autentikasi dengan JWT

Untuk API stateless, saya menggunakan JWT (JSON Web Token) dengan package tymon/jwt-auth. Beberapa tips penting:

  • Atur masa berlaku token secara wajar (biasanya 1 jam untuk access token)
  • Implementasikan refresh token untuk pengalaman pengguna yang lebih baik
  • Simpan data sensitif di environment variable, bukan di kode

Respons Konsisten

Salah satu hal yang membuat pengembang antarmuka senang adalah respons API yang konsisten. Saya selalu menggunakan format:

{
  "success": true,
  "message": "Data berhasil diambil",
  "data": { ... },
  "meta": { "page": 1, "total": 100 }
}

Strategi Caching

Untuk endpoint yang sering dipanggil dengan data yang jarang berubah, caching bisa memberi dampak besar. Laravel menyediakan abstraksi cache yang mudah digunakan dengan Redis atau Memcached.

Aturan sederhana yang saya pakai: cache data yang proses pengambilannya mahal (join banyak tabel, API eksternal) dan hapus cache ketika data berubah.

Pembatasan Request

Jangan lupa lindungi API Anda dari penyalahgunaan. Laravel punya fitur rate limiting bawaan yang mudah dikonfigurasi di RouteServiceProvider. Untuk API publik, saya biasanya mengatur 60 request per menit per IP.

Kesimpulan

Membangun API yang mudah dikembangkan bukan tentang alat yang paling canggih, tapi tentang konsistensi dalam arsitektur dan kebiasaan yang baik sejak awal. Laravel memberikan semua yang Anda butuhkan — tinggal bagaimana Anda memanfaatkannya.