Mengenal Lumen, Micro Framework Untuk Membuat API

Berbicara mengenai Micro Framework yang saat ini banyak bermunculan, tentu membingungkan para developer untuk memilih mana yang terbaik untuk aplikasi mereka. Micro Framework sendiri adalah sebuah tool yang digunakan untuk projek yang lebih kecil dan penggunaan untuk kasus yang spesifik. Dalam kata lain fungsinya adalah untuk menyederhanakan framework agar lebih mudah dalam implementasi dan menyediakan testing dan deployment dengan lebih cepat. Kali ini kita akan membahas salah satu Micro Framework PHP yaitu Lumen, apa itu Lumen? Lumen adalah sebuah micro framework yang dikembangkan oleh Laravel untuk mengakomodasi kebutuhan developer yang ingin membangun aplikasi dalam skala lebih kecil.

Secara khusus Lumen biasa digunakan untuk pembuatan RESTFUL Application Programming Interface (API) dengan CRUD (Create, Read, Update, dan Delete). Selain itu, Lumen mengklaim sebagai micro service tercepat karena hasil kecepatan benchmarknya mencapai 1900 request per detik dibandingkan dengan pendahulunya. Keunggulan Lumen lainnya yaitu sudah berpadu dengan Eloquent ORM, caching, queues, validation, routing, middleware, dan service container Laravel yang kuat. Jika kamu sudah familiar dengan Laravel, kamu dapat dengan mudah menggunakan Lumen, meskipun mungkin kamu akan sedikit bingung di awal karena ada beberapa fitur dari Laravel yang dihilangkan di dalamnya. Setelah memahami pengertian Micro Framework PHP Lumen, sekarang saatnya belajar Lumen dengan mengikuti tutorial sederhana berikut ini.

Lumen Tutorial

Tutorial Lumen

Sebelum mengikuti tutorial, pastikan kamu telah menginstall Lumen terlebih dahulu di laman resminya https://lumen.laravel.com. Ada dua cara install Lumen di komputer, yaitu menggunakan Lumen Installer dan menggunakan Composer. Dalam tutorial ini kita akan menggunakan CRUD Lumen versi 6 dan sistem operasi Windows 10. Berikut langkah-langkah membuat RESTful API.

  • Pertama, buka terminal dan ketik kode di bawah ini untuk melakukan instalasi. Tunggu hingga instalasi selesai.

composer create-project laravel/lumen todoLumen --prefer-dist

  • Setelah itu buka folder hasil instalasi pada kode editor yang kalian gunakan dan lakukan konfigurasi awal terlebih dahulu. Kemudian buka file bootstrap => app.php lalu uncomment kode berikut ini.

<?php

$app->withFacades();

$app->withEloquent();

Dan kode berikut

<?php

$app->register(App\Providers\AppServiceProvider::class);

$app->register(App\Providers\AuthServiceProvider::class);

$app->register(App\Providers\EventServiceProvider::class);

  • Secara default kode-kode di atas di-comment oleh Lumen, maka kita harus uncomment terlebih dahulu agar dapat menggunakan fungsi-fungsi dari Lumen.
  • Sekarang buka file .env dan atur sesuai database kamu. Dalam tutorial ini kita menggunakan mysql.

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=lumendb

DB_USERNAME=root

DB_PASSWORD=

  • Lalu buat migrasi datanya, seperti biasa saat di Laravel. Lalu ketik perintah artisan berikut.

php artisan make:migration todo --create=todo

  • Buka file migrasi yang sudah kita buat tersebut pada folder database => migrations => 2019_10_28_084602_todo.php Samakan isinya seperti berikut.

<?php

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;

class Todo extends Migration

{

public function up()

{

Schema::create('todo', function (Blueprint $table) {

$table->increments('id');

$table->string('activity', 200);

$table->text('description');

$table->timestamps();

});

}

public function down()

{

Schema::dropIfExists('todo');

}

}

  • Lanjut jalankan perintah berikut.

php artisan migrate

  • Nah, sampai di sini kita sudah membuat database untuk menyimpan data yang akan dikelola nanti. Sekarang kita akan membuat Controller untuk membuat operasi CRUD-nya. Perlu diingat bahwa kita menggunakan Micro framework yang mana kita tidak dapat menggunakan perintah artisan make:controller seperti di Laravel. Karena library bawaan Laravel sudah dihilangkan. Sehingga membuat Lumen menjadi lebih ringan.
  • Lalu cara membuatnya cukup buka folder  App => Http => Controllers nanti kita akan menemukan file ExampleController.php yang akan kita duplikat untuk Controller baru nanti. Silahkan beri nama sesuai kebutuhan. Di tutorial ini diberi nama todoController.php dan berikut isinya.

<?php

namespace App\Http\Controllers;

class ExampleController extends Controller

{

/**

* Create a new controller instance.

*

* @return void

*/

public function __construct()

{

//

}

//

}

  • Lalu tambahkan fungsi CRUD-nya sehingga kode lengkapnya seperti berikut.

<?php

namespace App\Http\Controllers;

use App\Todos; //File Model

use Illuminate\Http\Request;

class todoController extends Controller

{

/**

* Create a new controller instance.

*

* @return void

*/

public function __construct()

{ }

public function index()

{

$data = Todos::all();

return response($data);

}

public function show($id)

{

$data = Todos::where('id', $id)->get();

return response($data);

}

public function store(Request $request)

{

$data = new Todos();

$data->activity = $request->input('activity');

$data->description = $request->input('description');

$data->save();

return response('Berhasil Tambah Data');

}

public function update(Request $request, $id)

{

$data = Todos::where('id', $id)->first();

$data->activity = $request->input('activity');

$data->description = $request->input('description');

$data->save();

return response('Berhasil Merubah Data');

}

public function destroy($id)

{

$data = Todos::where('id', $id)->first();

$data->delete();

return response('Berhasil Menghapus Data');

}

}

  • Lihat kode paling atas (setelah namespace) kita harus meng-import Model Todos yang mana harus kita buat terlebih dahulu. Untuk membuatnya hampir sama saat kita membuat Controller tadi. Buka folder App lalu duplikat file User.php dan beri nama Todos.php.. Terakhir isikan kodenya seperti berikut.

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Todos extends Model

{

protected $table = 'todo';

}

  • Langkah terakhir, buat route-nya dengan membuka file routes => web.php kemudian tambahkan kode berikut.

<?php

$router->get('/todo', 'todoController@index');

$router->get('/todo/{id}', 'todoController@show');

$router->post('/todo/save', 'todoController@store');

$router->post('/todo/{id}/update', 'todoController@update');

$router->post('/todo/{id}/delete', 'todoController@destroy');

  • Sekarang RESTful API yang kita buat siap untuk dipakai. Caranya jalankan server dengan perintah berikut.

php -S localhost:8000 -t ./public

Itulah pembahasan mengenai Micro Framework Lumen dan tutorial penggunaannya. Sekarang giliran kamu untuk mempraktikkan tutorial yang sudah kamu dapatkan di atas sendiri. Semoga bermanfaat.