Tutorial Lumen #5 : Membuat REST API [Menampilkan Data]

Tutorial Lumen #5 : Membuat REST API Lumen [Menampilkan Data] – Halo semuanya berjumpa lagi di kodingin : situs belajar pemrograman website yang membahas mengenai REST API di Lumen.

Sebelum melanjutkan tutorial mengenai REST API pada lumen maka anda harus menguasai migration dan Elequent ORM. Pada seri tutorial lumen kali tidak saya bahas mengenai Migration dan Elequent dengan alasan cara penggunaannya seperti di Laravel.

Namun pada tutorial ini saya akan jelaskan detail tutorial dari pembuatan database sampai menampilkan data dari database dalam bentuk JSON.

Jika anda ingin belajar lebih jauh mengenai Elequent ORM dan Migartion di Lumen Laravel bisa baca referensi di bawah ini :

Sudah saya bahas di awal bahwa tujuan utama terbentuk nya micro framework lumen yaitu untuk membuat layanan REST API.

Membuat REST API Lumen – Menampilkan Data dari Database MySQL

Pada tutorial ke 5 ini yang akan di bahas yaitu membuat REST API dengan bahasan menampilkan data dari database MySQL menggunakan Lumen. Dan hasil dari tampilan data nanti nya berupa JSON.

Yuk langsung saja kita mulai.

Melakukan Konfigurasi Database MySQL

Silahkan buka file di root projek dengan nama .env. Dan silahkan cari kode berikut ini :

Jika sudah menemukan silahkan ganti nama database, username dan password sesuai dengan database teman-teman.

Sebagai contoh konfigurasi Database MySQL punya saya :

Membuat Migration di Lumen

Sudah kita ketahui bersama bahwa migration berfungsi untuk membuat skema tabel database di lengkapi dengan atribut tabelnya.

Untuk membuat migration baru di Laravel cara dengan mengetikkan perintah :

Pembuatan migrataion di atas dengan nama tabel posts, pada bagian sintak ini_table_post digunakan untuk memberi nama file migration namun di beri awalan waktu.

Jika sudah, silahkan periksa folder database/migrations. Maka terdapat file baru dengan yang mengadung judul nama file ini_table_post.

Selanjutnya yaitu menambahkan field yang di butuhkan :

Berikut ini kode yang di tambahkan :

database/migrations/2019_09_30_145628_ini_table_post.php

Sehingga kode lengkap nya :

Perlu diketahui nama file migraion nya berbeda di awalan, ini tergantung oleh waktu pembuatan

Jika sudah ketikkan :

Selanjutkan mari kita periksa pada database dengan yang kita bikin, dengan contoh punya saya nama databases nya yaitu belajar_lumen.

Jika berhasil maka terdapat 2 table yaitu posts dan migrations.

Tutorial Lumen #5 : Membuat REST API [Menampilkan Data]
Membuat REST API Lumen

Gambar di atas menujukkan bahwa pembuatan skema table database sudah berhasil.

Yuk kita lanjut.

Membuat Routing di Lumen

Sekarang kita buat satu routing yang digunakan untuk memanggil controller. Asusmkan kita sudah punya controller dengan nama PostsController.php.

routes/web.php

Membuat Model di Lumen

Kita butuh model untuk menggunakan elequent ORM di Lumen. Namun fitur Elequent di Lumen tidak langsung bisa digunakan melainkan harus mendaftarkan dahulu di bootstrap/app.php.

Silahkan cari pada line 26 terdapat kode yang di matikan yaitu :

Maka untuk menggunakan fitur elequent ORM pada Lumen harus mengaktifkan kode di atas.

Oke sudah berhasil kita melakukan aktifiasi elequent.

Membuat Controller di Lumen

Sekarang silahkan buat file dengan nama Post.php di folder app.

app/Post.php

Kode di atas di sebut dengan model, dimana tadi kita buat table dengan nama posts maka nama modelnya yaitu Post, ini tidak wajib sih hanya saja struktur yang baik seperti itu.

Jika sudah sama selanjutnya ke langkah berikutnya yaitu membuat controller dengan nama PostController.php

Silahkan buat controller dengan nama PostController di app/Http/Controller.

app/Http/Controller/PostController.php

Perhatikan kode di atas, terdapat pemanggilan model Post.php yang kita buat di tandai dengan kode use App\Post.

Selanjutnya untuk menampilkan data dengan Elequent ORM di sertai dengan sorting dan pagination.

Hasil Query menampilkan data dari database MySQL di simpan dalam variable $getPost. Selanjutnya di buat variable baru dengan nama $out yang berisi array di mana variable $getPost tadi sebagai value dari key results serta terdapat key dengan name message yang memiliki value list_post.

Yang terakhir menampilkan data ke browser dengan content type json. dan Angka 200 di atas merupakan sebuah kode status OK pada standart kode REST API.

Jika sudah semua, sekarang saat kita lakukan uji coba.

Uji Coba REST API

Sebelum melakukan uji coba, silahkan berikan beberapa data di Table posts yang kita buat guna untuk melihat hasilnya mengenai keberhasilan kita membuat API di Lumen.

Berikut ini contoh data nya pada database saya :

Tutorial Lumen #5 : Membuat REST API [Menampilkan Data]
Membuat REST API Lumen

Seperti biasa silahkan jalankan lumen build serve nya dengan mengetikkan perintah :

Oh iya, untuk melakukan uji coba dapat menggunakan browser biasa maupun menggunakan tools testing API bernama Postman. Jika anda belum punya bisa donwload di https://www.getpostman.com/.

Masih ingat bahwa routing yang kita bikin dengan end point /post. Maka untuk melakukan uji coba silahkan akses http://localhost:8000/posts. Dan lihat hasilnya :

Tutorial Lumen #5 : Membuat REST API [Menampilkan Data]

Hasil response REST API terbilang lumayan komplit, dimana terdapat properti pendukung lain nya seperti total data dan tampilan per halaman.

Kesimpulan…

Pembuatan REST API di lumen cukup mudah, hanya dengan mengeluarkan bentuk respon tipe content berupa data JSON. Di lumen juga bisa menggunakan fitur Elequent ORM seperti halnya di Laravel namun harus mengaktifkan nya terlebih dahulu.

Perlu di ketahui perintah php artisan yang digunakan membuat sesuatu tidak sebanyak dii laravel. auto generate file dapat dilakukan hanya untuk membuat migration dan seeder.

Sekian tutorial cara membuat REST API di lumen dengan kebutuhan menampilkan data dari database MySQL. Terima Kasih.

Baca Juga…

One comment

  1. Hobi bermain game ingin mendapatkan penghasilan tambahan ?? dengan bermoda 25K anda mendapat peluang menang hingga puluhan juta rupiah, Buruan gabung bersama kami dupa88. com

Leave a Reply