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