10

Programming : Membuat RESTful API Dengan Lumen 5.2

Lumen merupakan sebuah micro framework yang dibangun dari component yang ada di Laravel Framework. Atau lebih gampangnya bisa dikatakan Lumen merupakan versi lite atau micro dari Laravel. Pertanyaannya kenapa Lumen dibuat? Lumen didesain untuk mengembangkan sebuah micro service atau small application seperti web service.

Pernah mendengar atau menggunakan Slim Framework? Nah, Lumen mempunyai tujuan yang sama seperti halnya Slim.

membuat api dengan lumen

Pada artikel ini, saya akan mencoba untuk memberikan sedikit gambaran tentang bagaimana cara membuat API dengan Lumen Framework.

Install Lumen

Hal yang pertama harus dilakukan tentu saja menginstall Lumen di local server kita. Bisa melalui composer atau secara cara manual dengan mendownload https://github.com/laravel/lumen . Jika melalui composer, kamu bisa memulai installasi melalui terminal/command dengan mengetikan command berikut:

composer create-project laravel/lumen sample_api

Oh iya, pastikan juga bahwa composer sudah terinstall di local server kamu. Jika berhasil maka akan ter-create sebuah folder baru bernama sample_api.

Masih dalam terminal, jalankan command berikut:

php artisan serve sample_api sample_api/public

Maksud dari perintah diatas adalah kita akan mengarahkan virtual host sample_api kef folder sample_api yang baru kita install lumen tadi.  Nama virtual host bisa dirubah.

Jangan lupa untuk mendaftarkan virtual hostnya kalau di linux biasanya di /etc/hosts.

Jalankan melalui browser, jika berhasil maka akan muncul halaman default lumen seperti ini :

lumen

 

Konfigurasi

Buat database di mysql lalu edit file “sample_api/.env.example” menjadi “sample_api/.env” dan rubah konfigurasi database sesuai database yang baru dibuat

DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=lumen_rest_ce
DB_USERNAME=root
DB_PASSWORD=your_password

Setelah itu edit file “sample_api/bootstrap/app.php” lalu hilangkan comment baris ini:

Dotenv::load(__DIR__.'/../');  
$app->withFacades();  
$app->withEloquent();

Model

Sekarang mari kita buat satu table dengan struktur seperti berikut:

CREATE TABLE `rooms` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `no` int(11) DEFAULT NULL,
  `room_type_id` int(11) DEFAULT NULL,
  `floor_id` int(11) DEFAULT NULL,
  `created_at` datetime DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;

Lalu buat sebuah file model di app/Http/Models/RoomsModel.php

namespace App\Http\Models;

use Illuminate\Database\Eloquent\Model;
use Log;

class RoomsModel extends Model
{
	  public $table = 'rooms';
}

Controllers

Buat sebuah file controller bernama RoomsController.php di App/Http/Controllers :

namespace App\Http\Controllers;
use App\Http\Libraries\Responses;
use App\Http\Models\RoomsModel;
use Illuminate\Http\Request;
use Validator;

class RoomsController extends Controller
{
    /**
     * Retrieve the user for the given ID.
     *
     * @param  int  $id
     * @return Response
     */
    public function index()
    {

    }

    public function detail($id)
    {

    }

    public function add(Request $req)
    {
      
    }

    public function delete($id)
    {

    }

    public function update($id, Request $req)
    {
      
    }

Route

Kemudian kita akan membuat route untuk masing-masing endpoint standar seperti create,read,delete,update:

$app->group(['prefix' => 'v1' ],function ($app){

    $app->get('rooms', 'App\Http\Controllers\RoomsController@index');
    $app->get('rooms/{id}', 'App\Http\Controllers\RoomsController@detail');
    $app->delete('rooms/{id}', 'App\Http\Controllers\RoomsController@delete');
    $app->post('rooms/', 'App\Http\Controllers\RoomsController@add');
    $app->put('rooms/{id}', 'App\Http\Controllers\RoomsController@update');

});

Ok, penjelasan route diatas anggap saja kita akan membuat API dengan prefix versi 1. Baris pertama untuk menampilkan list data, baris kedua untuk melihat detail data berdasarkan ID, baris ketiga untuk melakukan delete berdasarkan ID, baris keempat untuk menambah data, baris terakhir untuk melakukan update data berdasarkan ID.

Sampai di sini, kita sudah berhasil membuat sebuah struktur RESTFul API sederhana dengan menggunakan Lumen Framework. Di dalam setiap function yang ada di controller yang sudah tadi kita buat, bisa  kita isi dengan source code sesuai dengan fungsinya masing-masing seperti yang saya jelaskan.

Untuk pembahasan yang lebih detail, insya Allah akan saya jelaskan pada artikel selanjutnya. Jika ada pertanyaan, jangan sungkan untuk bertanya pada kolom komentar di bawah ya.. :)

 

 



Rekomendasikan Artikel Ini ?

Gungun Septian

Bukan Ustad, bukan Politisi, bukan Artis. Cuma Programmer yang hobi nulis.

10 Comments

    • Untuk menjalankan command

      composer create-project laravel/lumen sample_api

      pastikan kamu sudah menginstall composer terlebih dahulu di https://getcomposer.org/ dan setting sebagai global. Jika tidak dijadikan global, kamu bisa menjalakan command seperti ini :

      php composer.phar create-project laravel/lumen sample_api
      • thanks fast response nya. appreciate alot nih

        btw ane udh download dan install lumen nya di:C:\Users\Admin\sample_api

        Composer setupnya sendiri ada di: C;\Programdata\ComposerSetup

        dulu ane pernah make laravel 5 di htdocs xampp dan bisa. apakah ane salah tempat install lumen (mungkin harusnya di htdocs?)

        sorry masih newbie hehe

        Thanks!

          • sudah saya simpan gan didalam htdocs. masih sama juga. serve not defined

            baca-baca di forum lain katanya serve command memang sudah dihapus. kalo boleh tau agan gungun nyoba kapan ya?

            Thanks

          • nyoba hampir setiap hari.. karena itu bagian pekerjaan.. terakhir hari ini 😀

  1. gan pas ane buat localhost/namafile , kok gak muncul apa2 ya cuman muncul struktur foldernya… supaya langsung gimana gan ?

    • Hi Jonathan maaf baru sempat balas..

      kenapa muncul stuktur folder karena itu tidak bisa diakses hanya localhost/namafile tapi localhost/namafile/public . Maka lebih baik agan membuat virtual host dengan mengarahkan vistual hostnya ke namafile/public

Leave a Reply

Your email address will not be published. Required fields are marked *