Lumen merupakan salah satu micro-framework yang dikembangkan oleh Taylor Otwell, pengembang yang berada di balik framework PHP paling populer saat ini, Laravel. Bisa dibilang, Lumen adalah adik kecil dari Laravel.
- Membuat API dengan Micro-framework Lumen
- Tool dan Perangkat Lunak yang Digunakan
- Mengatur Pangkalan Data (Database)
- Membuat Migration untuk Tabel User
- Menentukan Path, Kode Status, Header, Query String, dan Format Data
- Membuat Feature Test
- Future post: Membuat Controller Operasi CRUD & Route untuk User
- Future post: Validasi Input
- Future post: Menangangi Kesalahan dan Menampilkan Pesan
- Future post: Autentikasi API dengan Token
- Future post: Otorisasi Pengguna
- Future post: Meningkatkan Performa dengan Data Caching (Cache)
- Future post: Menggunakan Fitur Queue (Antrian) untuk Proses Asynchronous
Jika Laravel dibuat untuk pengembangan full-stack web, maka Lumen lebih dikhususkan untuk pembuatan API. Itulah kenapa, beberapa fitur yang ada di Laravel dipangkas dan tidak tersedia di Lumen. Walau begitu, Lumen punya performa yang lebih baik dalam menangani permintaan (request) dibandingkan Laravel.
Jika kalian terbiasa mengembangkan aplikasi berbasis web dengan Laravel, pada dasarnya, tidak ada bedanya ketika menggunakan Lumen. Controller, Request, Model, sampai dengan View, memberikan pengalaman yang sama dengan Laravel.
Salah satu yang saya suka dari Lumen adalah, kita bisa memindahkan aplikasi dari Lumen ke Laravel tanpa banyak perubahan. Menarik bukan?
Kebutuhan Sistem
Sampai seri ini ditulis, saya sendiri menggunakan Lumen versi 5.4 dan PHP 7.1 serta menggunakan sistem operasi Arch Linux. Ke depannya, versi ini akan terus saya gunakan sebagai bahan tulisan.
Kalian bisa menggunakan versi yang berbeda, selama spesifikasi perangkat lunak pendukung di mesin lokal sesuai dengan kebutuhan sistem Lumen.
Berikut kebutuhan sistem Lumen untuk versi 5.4.
- PHP >= 5.6.4
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
Instalasi
Sama seperti Laravel, instalasi di Lumen juga disediakan beberapa cara. Ketiganya tetap membutuhkan koneksi internet.
Cara paling direkomendasikan adalah menggunakan Lumen Installer. Bagi kalian yang merasa sedikit kerepotan untuk mengkonfigurasi Lumen Installer, bisa menggunakan cara alternatif, yaitu instal langsung melalui Composer.
Instal Composer jika belum ada di mesin lokal.
$ sudo pacman -S composer // untuk ubuntu $ sudo apt install composer
Instal Lumen pada direktori yang dikehendaki.
$ composer create-project laravel/lumen lumen-api // masuk ke direktori instalasi $ cd lumen-api
Konfigurasi
Lumen sudah siap digunakan. Tapi sebelum dapat digunakan sepenuhnya, ada beberapa konfigurasi dalam berkas .env
yang harus disesuaikan. Buka berkas .env
, adapun isi bawaan berkas tersebut adalah sebagai berikut.
APP_ENV=local APP_DEBUG=true APP_KEY= APP_TIMEZONE=UTC DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=homestead DB_USERNAME=homestead DB_PASSWORD=secret CACHE_DRIVER=memcached QUEUE_DRIVER=sync
Yang paling utama adalah mengisi nilai dari APP_KEY
dengan string acak sepanjang 36 karakter. Tidak seperti Laravel yang menyediakan key generator dari Artisan (php artisan key:generate
), di Lumen tidak ada tool yang berfungsi serupa. Jadi, kita harus mengisinya secara manual. Kalian bisa menggunakan tool daring berikut untuk mempermudah pembuatan key.
Perubahan selanjutnya adalah opsi, yaitu APP_TIMEZONE
. Sesuaikan dengan waktu zona aplikasi digunakan. Umumnya, bagi developer dan pemakai aplikasi di Indonesia, mengunakan “Asia/Jakarta” sebagai nilainya.
Terakhir, jika kalian belum menginstal Memcached di mesin lokal, ganti nilai APP_KEY
menjadi “file” untuk menghindari pesan kesalahan tidak ditemukannya librari tersebut.
Menjalankan Lumen
Lagi-lagi, Lumen tidak menyediakan tool untuk menjalankan built-in web server layaknya Laravel (php artisan serve
). Tapi tenang, kita bisa menggunakan built-in web server langsung dengan PHP.
$ php -S localhost:8000 -t public
Kemudian akses aplikasi Lumen dari browser dengan URL seperti yang tertera di atas. Jika tidak ada kendala, kalian sudah satu langkah menuju seri berikutnya.
***
Sampai di sini, kalian sudah bisa menginstal, mengkonfigurasi, dan menjalankan Lumen melalui browser dengan built-in web server. Tulisan berikutnya akan menjabarkan pengaturan pangkalan data (database), pembuatan controller dari titik awal, mengatur route, memroses permintaan, sampai dengan mengembalikan response. 😉
Halo, apakah seri tutorial membuat API dengan Lumen akan terus dilanjutkan? Karena saya googling” masih belum begitu banyak tutorial membuat API dengan lumen hingga ke tahap yang saya anggap advance. Mulai dari membuat Auth login dengan berbagai sosial media dan file upload menggunakan Lumen. Saya masih dalam tahap belajar juga sih. Terima kasih.
Halo Mas,
Seri tutorial ini akan terus dilanjutkan, hanya saja memang butuh waktu panjang untuk menyelesaikannya.
Terima kasih.
Mas, tutorial lumen lanjutannya ada lagi n’ga?
mau nyoba bikin api nih.
ditunggu kunjungan baliknya 😀