Seperti yang telah saya sampaikan di Belajar Laravel, kita tidak akan belajar cara membangun aplikasi web secara keseluruhan dengan MVC-nya Laravel saja, melainkan Laravel hanya digunakan sebagai REST API di sisi backend, lalu bagian frontend alias view-nya disokong oleh Vue.js. Terkait hal tersebut, ekosistem Laravel memiliki sebuah micro-framework yang khusus dirancang untuk layanan microservices, yaitu Lumen – versi ramping Laravel yang tidak disertai fitur templating dan dukungan session state.

Tanpa kehadiran fitur templating seperti blade, Lumen tidak dapat digunakan untuk membuat tampilan website (view), sedangkan ketiadaan dukungan session state, menyebabkan autentikasi pada Lumen harus dilakukan dengan mekanisme stateless, misal API Token. Absennya beberapa fitur pada Lumen membuat micro-framework ini mampu mengungguli kinerja Laravel sekitar 25-30% lebih cepat untuk urusan API (tidak melibatkan database).

Apa itu REST API?

API atau Application Program Interface adalah sebuah antarmuka yang memungkinkan programmer untuk berkomunikasi dengan aplikasi. Cara kerja API serupa middleware, setiap kali ada request masuk, API akan mencegat request tersebut untuk diproses terlebih dahulu sebelum diteruskan ke Controller tujuan. Jika request valid, API akan merespon request dengan mengembalikan data yang diproses oleh Controller.

Penerapan API sangatlah luas, salah satunya adalah dengan arsitektur REST atau Representational State Transfer, sebuah konsep arsitektur web yang pertama kali diperkenalkan oleh Roy Fielding melalui disertasi-nya pada tahun 2000. Beberapa pedoman di dalam REST antara lain :

  • Client – Server : klien (frontend) dan server (backend) dikembangkan secara terpisah, masing-masing dapat dibangun dengan teknologi yang berbeda-beda.
  • Stateless : session state tidak disimpan di sisi server tapi di klien, tidak ada data klien yang perlu disimpan di server ketika request berlangsung.
  • Cacheable : respon dari server dapat di-cache di sisi klien dalam kurun waktu tertentu agar klien tidak harus selalu melakukan request ke server untuk memperoleh data tertentu.

Ketika API menggunakan arsitektur REST, perpaduan keduanya sering disebut sebagai REST API atau RESTful API (sama saja) – ada juga yang menyebutnya BFF atau The Backend for Frontend. Untuk berkomunikasi dengan server, REST API menggunakan HTTP request, misal :

GET /posts HTTP/1.1

Beberapa jenis HTTP Request yang paling banyak digunakan dalam REST API, yaitu : GET, POST, PUT dan DELETE.

Membuat Project Lumen

Caranya hampir sama dengan Cara Install Laravel dengan Composer. Perbedaannya, jika Laravel menggunakan laravel/laravel, maka Lumen menggunakan laravel/lumen.

// jika ingin membuat project Lumen di direktori yang sudah ada
composer create-project --prefer-dist laravel/lumen .

// jika ingin membuat project Lumen di direktori baru yang belum ada
composer create-project --prefer-dist laravel/lumen namaproject

Untuk meng-install versi sebelumnya atau yang spesifik, misal versi 5.5, Anda dapat menggunakan perintah :

composer create-project --prefer-dist laravel/lumen="5.5.*"
install lumen laravel composer