
Apa itu Lumen?
Lumen adalah framework PHP yang dikembangkan oleh Taylor Otwell, pencipta Laravel2. Lumen tidak dimaksudkan untuk menggantikan Laravel, melainkan untuk menjadi pilihan alternatif bagi developer yang ingin membuat aplikasi web dalam skala lebih kecil dan sederhana3.
Lumen memiliki beberapa keunggulan, di antaranya adalah:
- Kecepatan: Lumen diklaim mampu menangani hingga 1900 request per detik, mengalahkan framework sejenis seperti Slim4.
- Kompatibilitas: Lumen menggunakan komponen-komponen yang sama dengan Laravel, sehingga mudah untuk beralih dari Lumen ke Laravel jika diperlukan5.
- Fitur: Lumen sudah dibekali dengan fitur-fitur yang berguna untuk membuat REST API, seperti Eloquent ORM, caching, validation, routing, middleware, dan service container6.
Bagaimana Cara Menggunakan Lumen?
Untuk menggunakan Lumen, Anda harus memenuhi beberapa persyaratan sistem, yaitu:
- PHP >= 8.0
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension7
Anda juga harus memiliki Composer, sebuah tool untuk mengelola dependensi PHP8.
Setelah itu, Anda bisa menginstal Lumen dengan menggunakan perintah berikut di terminal:
composer create-project --prefer-dist laravel/lumen blog
Perintah tersebut akan membuat sebuah proyek baru bernama blog dengan menggunakan Lumen. Anda bisa mengganti nama blog dengan nama proyek Anda sendiri.
Untuk menjalankan proyek Lumen, Anda bisa menggunakan server bawaan PHP dengan perintah berikut:
php -S localhost:8000 -t public
Perintah tersebut akan menjalankan proyek Lumen di alamat [localhost:8000].
Bagaimana Cara Membuat REST API dengan Lumen?
REST API adalah sebuah cara untuk berkomunikasi antara aplikasi web dengan menggunakan protokol HTTP. REST API biasanya mengirimkan dan menerima data dalam format JSON.
Untuk membuat REST API dengan Lumen, Anda harus melakukan beberapa langkah, yaitu:
- Membuat database dan model
- Membuat controller dan route
- Membuat middleware dan authentication
- Membuat resource dan response
Berikut adalah penjelasan singkat tentang masing-masing langkah:
Membuat Database dan Model
Database adalah tempat untuk menyimpan data yang dibutuhkan oleh aplikasi web. Anda bisa menggunakan database apa saja yang didukung oleh Laravel, seperti MySQL, PostgreSQL, SQLite, dll.
Model adalah kelas PHP yang merepresentasikan tabel di database. Model menggunakan Eloquent ORM, sebuah fitur yang memudahkan Anda untuk berinteraksi dengan database tanpa harus menulis query SQL.
Untuk membuat database dan model, Anda bisa mengikuti langkah-langkah berikut:
- Buat database baru dengan nama sesuai dengan proyek Anda, misalnya blog.
- Konfigurasikan koneksi database di file .env, yang berisi informasi seperti nama database, username, password, dll.
- Buat migration, yaitu file PHP yang berisi definisi struktur tabel di database. Anda bisa membuat migration dengan perintah:
php artisan make:migration create_posts_table
Perintah tersebut akan membuat file migration baru di folder database/migrations dengan nama create_posts_table. Anda bisa mengganti nama posts dengan nama tabel Anda sendiri.
- Edit file migration yang baru dibuat, dan tambahkan kolom-kolom yang dibutuhkan oleh tabel, misalnya id, title, content, dll.
- Jalankan migration dengan perintah:
php artisan migrate
- Perintah tersebut akan membuat tabel baru di database sesuai dengan file migration.
- Buat model, yaitu file PHP yang berisi kelas yang merepresentasikan tabel di database. Anda bisa membuat model dengan perintah:
php artisan make:model Post
- Perintah tersebut akan membuat file model baru di folder app dengan nama Post. Anda bisa mengganti nama Post dengan nama model Anda sendiri.
- Edit file model yang baru dibuat, dan tambahkan properti yang dibutuhkan oleh model, misalnya fillable, hidden, dll.
Membuat Controller dan Route
Controller adalah kelas PHP yang berisi fungsi-fungsi untuk menangani request dari pengguna dan mengembalikan response. Controller biasanya berinteraksi dengan model untuk mengambil atau menyimpan data ke database.
Route adalah aturan untuk menentukan controller dan fungsi mana yang akan dipanggil sesuai dengan URL dan metode HTTP yang diminta oleh pengguna. Route biasanya didefinisikan di file routes/web.php atau routes/api.php.
Untuk membuat controller dan route, Anda bisa mengikuti langkah-langkah berikut:
- Buat controller, yaitu file PHP yang berisi kelas yang berisi fungsi-fungsi untuk menangani request dan response. Anda bisa membuat controller dengan perintah:
php artisan make:controller PostController
Perintah tersebut akan membuat file controller baru di folder app/Http/Controllers dengan nama PostController. Anda bisa mengganti nama PostController dengan nama controller Anda sendiri.
- Edit file controller yang baru dibuat, dan tambahkan fungsi-fungsi yang dibutuhkan oleh controller, misalnya index, show, store, update, delete, dll. Fungsi-fungsi tersebut harus berinteraksi dengan model untuk mengambil atau menyimpan data ke database, dan mengembalikan response dalam format JSON.
Buat route, yaitu aturan untuk menentukan controller dan fungsi mana yang akan dipanggil sesuai dengan URL dan metode HTTP yang diminta oleh pengguna. Anda bisa membuat route di file routes/web.php atau routes/api.php, tergantung dari jenis aplikasi web yang Anda buat. Misalnya, jika Anda membuat REST API, Anda bisa membuat route di file routes/api.php dengan format seperti ini:
$router->get('/posts', 'PostController@index');
$router->get('/posts/{id}', 'PostController@show');
$router->post('/posts', 'PostController@store');
$router->put('/posts/{id}', 'PostController@update');
$router->delete('/posts/{id}', 'PostController@delete');
Route tersebut akan menentukan bahwa jika pengguna mengakses URL /posts dengan metode GET, maka fungsi index di PostController akan dipanggil. Jika pengguna mengakses URL /posts/{id} dengan metode GET, maka fungsi show di PostController akan dipanggil, dan seterusnya.
Membuat Middleware dan Authentication
Middleware adalah kelas PHP yang berisi fungsi untuk memfilter request sebelum masuk ke controller. Middleware biasanya digunakan untuk melakukan validasi, autentikasi, atau operasi lain yang perlu dilakukan sebelum request diproses oleh controller.
Authentication adalah proses untuk memverifikasi identitas pengguna yang mengakses aplikasi web. Authentication biasanya digunakan untuk membatasi akses ke beberapa fitur atau data yang hanya boleh diakses oleh pengguna tertentu.
Untuk membuat middleware dan authentication, Anda bisa mengikuti langkah-langkah berikut:
- Buat middleware, yaitu file PHP yang berisi kelas yang berisi fungsi untuk memfilter request. Anda bisa membuat middleware dengan perintah:
php artisan make:middleware AuthMiddleware
Perintah tersebut akan membuat file middleware baru di folder app/Http/Middleware dengan nama AuthMiddleware. Anda bisa mengganti nama AuthMiddleware dengan nama middleware Anda sendiri.
- Edit file middleware yang baru dibuat, dan tambahkan logika untuk memfilter request, misalnya dengan menggunakan token, session, atau metode lain. Fungsi middleware harus mengembalikan response jika request tidak lolos filter, atau melanjutkan request ke controller jika lolos filter.
- Daftarkan middleware di file app/Http/Kernel.php, dengan menambahkan nama dan kelas middleware ke dalam array $routeMiddleware. Misalnya, jika Anda membuat middleware dengan nama AuthMiddleware, Anda bisa menambahkan baris berikut ke dalam array $routeMiddleware:
'auth' => \App\Http\Middleware\AuthMiddleware::class,
- Gunakan middleware di route yang membutuhkan filter, dengan menambahkan nama middleware setelah nama controller dan fungsi. Misalnya, jika Anda ingin menggunakan middleware auth di route /posts, Anda bisa menambahkan baris berikut ke dalam file routes/api.php:
$router->get('/posts', 'PostController@index', ['middleware' => 'auth']);
Route tersebut akan menentukan bahwa jika pengguna mengakses URL