Membuat Simple API dengan Lumen Framework

Instalasi

Kebutuhan Server

  • Php ≥ 5.6.4
  • OpenSSL Php Extension
  • PDO Php Extension
  • Mbstring Php Extension

Install lumen

lumen sebagaimana juga framework modern lainnya menggunakan composer untuk mengelola dependency (package) yang ada di dalamnya, jadi pastikan sebelum menggunakan lumen, composer sudah terinstall dan siap digunakan.

Untuk yang belum mengetahui composer dan apa gunanya composer bisa baca tulisan saya mengenal composer

Install lumen via composer create-project

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

nama-poject bisa diganti dengan project yang akan dibuat, perintah diatas akan mengunduh project lumen kedalam folder nama-project

Menjalankan lumen

untuk menjalankan lumen di local komputer, bisa menggunakan XAMPP di windows dan linux atau MAMP bagi pengguna mac os.

bisa juga menggunakan built-in web server php dengan perintah:

php -S localhost:8000 -t public

Konfigurasi

konfigurasi lumen terdapat pada file .env , hal selanjutnya adalah mengatur aplication key dengan random string 32 karakter pada bagian APP_KEY

Overview Simple API

Ibaratkan sebuah blog yang mempunyai post, pada tutorial ini akan dijelaskan step by step cara membuat post melalui API.

fitur yang akan dibuat adalah:

  • membuat post
  • list post
  • view single post
  • update post
  • delete post

Database

Post yang dibuat akan disimpan didatabase, untuk itu diperlukan mengatur database yang akan digunakan pada file .env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_database
DB_USERNAME=usernama_database
DB_PASSWORD=password_database

Membuat table and kolom

Post akan disimpan dalam table posts dengan kolom sebagai berikut:

  • id
  • title
  • body

membuat table dan kolom melalui database migration, dengan perintah:

php artisan make:migration create_posts_table --create=posts

perinah tersebut akan membuat file baru dalam folder database/migrations, definisikan kolom dan table yang dibutuhkan pada file baru tersebut.

public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('body');
$table->timestamps();
});
}

jalankan perintah php artisan migrate kemudian check database, jika berjalan dengan baik akan ada table baru dengan nama posts sesuai dengan yang didefinisikan pada file migrations.

lebih lanjut tentang migration bisa check disini

URL dan Http Verb

Aksi yang dilakukan pada API adalah dengan menggunakan URL dan http verb yang berbeda, pada simple API ini yang digunakan adalah

  • GET /posts

menampilkan list post

  • POST /posts

membuat post baru

  • GET /posts/123

menampilkan post dengan id 123

  • PUT /posts/123

update post dengan id 123

  • DELETE /posts/123

menghapus post dengan id 123

Membuat API

Membuat fungsi create post

app/Models/Post.php

uncomment line $app->withEloquent(); di file bootstrap/app.php

routes/web.php

app/Http/Controllers/PostController.php

Membuat fungsi list post

routes/web.php

app/Http/Controllers/PostController.php

Membuat fungsi view single post

routes/web.php

app/Http/Controllers/PostController.php

Membuat fungsi update post

routes/web.php

app/Http/Controllers/PostController.php

Membuat fungsi delete post

routes/web.php

app/Http/Controllers/PostController.php