Best Practice Lumen RESTful API – Bagian 2 Konfigurasi Struktur Dasar

Pada bagian sebelumnya kita sudah melakukan instalasi dan menjalankan aplikasi Lumen. Kita ingin memodifikasi, melakukan konfigurasi lumen dan mengenali struktur dasar aplikasi Lumen yang kita miliki. Bagian ini akan fokus untuk melakukan pengaturan dasar seperti pengaturan system environmentmodels packaging, orm setting dan memahami alur MVC Design Pattern.

System Environment

environment setting ngaret com
Gambar oleh: ngaret.com

Untuk mengatur konfigurasi aplikasi Lumen, kita bisa membuat sebuah file baru bernama .env (tanpa nama hanya berekstensi .env) dan menuliskan semua konfigurasi yang dibutuhkan oleh aplikasi lumen kita. Sebagai catatan pengaturan ini dimasukan ke dalam gitignore (diabaikan jika menggunakan git).

Singkat cerita kita tidak mau pengaturan yang sifatnya rahasia ter-ekspos ke version control (git). Oleh karena itu jika kita melakukan instalasi lumen melalui composer ataupun git (git clone) kita harus membuat ulang file ini (di-copas juga bisa sih, wkwk).

Models Packaging

moving user model structure ngaret com
Gambar oleh: ngaret.com

Lumen datang dengan menggunakan konsep MVC Design Pattern, yakni memandang sebuah sistem kedalam tiga bagian utama (Model, View, Controller). Oleh karena itu, apabila kita ingin menggunakan Lumen, secara otomatis (mau-tidak-mau) kita sangat disarankan mengikuti MVC Design Pattern ini (jangan seenaknya main hajar di controller semua atau get data di view yaa!)

Namun meskipun demikian, ada satu hal menarik yang secara default digunakan oleh Lumen (juga laravel). Jika kita memandang MVC sebagai masing-masing package (akan ada tiga package/folder), Lumen atau Laravel tidak datang dengan package Models.

Oleh karena itu kita sangat disarankan untuk membuat dan mengubah sedikit konfigurasi package Models ini. Caranya sederhana, cukup buat folder dengan nama Models (apapun juga boleh sih, hanya saja akan sangat baik apabila namanya terepresentasikan), lalu pindahkan Model yang ada (defaultnya ada Model User) ke dalam folder Models tersebut. Sebagai catatan, jangan lupa ubah juga struktur namespace (lihat bagian atas) serta konfigurasi pada file config/app.php.

ORM Setting

orm setting ngaret com
Gambar oleh: ngaret.com

Jika aplikasi lumen kita akan terhubung dengan database, akan sangat amat disarankan apabila kita menggunakan ORM (Object Relational Mapping) untuk mempermudah pekerjaan kita. Singkat cerita ORM ini berfungsi untuk merepresentasikan table pada database relasional kita ke dalam sebuah kelas (class) yang selanjutnya bisa kita manfaatkan untuk melakukan manipulasi data pada table tersebut.

Silahkan atur nama table, field primary key, default timestamp, incrementing (jika pk nya integer), serta fillable, guarded, ataupun hidden field. Jika teman-teman bingung dengan istilah per-database-an, teman-teman bisa mengikuti panduan membuat Entity Relationship Diagram hingga membuat Skema Relasi untuk lebih memahami istilah tersebut.

Route

default route ngaret com
Gambar oleh: ngaret.com

Lumen dan Laravel mempunyai fitur untuk mendefinisikan route (url) mana saja yang bisa diakses pada aplikasi kita. Kita bisa mengatur route pada file web.php yang terdapat pada folder routes.

Seiring dengan berjalannya waktu, route kita akan menjadi semakin kompleks. Oleh karena itu penting untuk mendefinisikan diawal akan ada url apa saja pada api end-point kita. Hal ini berhubungan dengan perubahan kebutuhan serta kompabilitas aplikasi dalam jangka panjang (api versioning dengan prefix /v1, /v2, dsb).

Controller

modify controller response ngaret com
Gambar oleh: ngaret.com

Controller sesuai namanya mengatur alur kerja aplikasi, berhubungan dengan komunikasi baik itu request ataupun response. Kita bisa mengatur Controller aplikasi kita berdasarkan abstraksi yang sudah kita tentukan sebelumnya (berhubungan dengan modelling aplikasi).

Misalnya saja, kita mempunyai aturan untuk setiap table pada database, akan ada satu model bernama User, dan akan ada satu controller bernama UserController. Model dan Controller tersebut berfungsi untuk melakukan operasi dasar pada data user tersebut.

Coba ubah method index tersebut untuk memberikan response yang berbeda (tidak ada standar resmi tentang hal ini, namun semakin rapih akan semakin baik).

Test

test modified response ngaret com
Gambar oleh: ngaret.com

Teman-teman bisa menggunakan aplikasi HTTP Tester apapun untuk melakukan ujicoba ini, seperti PostMan, Insomnia, dsb. Silahkan akses url Api Endpoint yang sudah kita buat dengan menggunakan metode GET. Jika tidak ada kesalahan, endpoint tersebut akan menghasilkan data yang sesuai dengan yang sudah kita buat sebelumnya.

Periksa!

check content type length ngaret com
Gambar oleh: ngaret.com

Pastikan data yang akan kita terima dan kita kirim sesuai dengan apa yang kita inginkan. Terdapat beberapa standar yang dapat digunakan dalam komunikasi data menggunakan API Endpoint seperti JSON, XML, dsb. Namun standar yang paling umum digunakan adalah JSON (Javascript Object Notation).

Bagian 3 Operasi CRUD

Summary
Review Date
Reviewed Item
Best Practice Lumen RESTful API – Bagian 2 Konfigurasi dan Struktur Dasar
Author Rating
51star1star1star1star1star
(Visited 356 times, 1 visits today)
News Reporter
Banyak orang menyebutku sebagai seorang petualang, dan itulah aku --hanya satu hal bedanya: seseorang yang mengorbankan kulit luarnya untuk membuktikan kebenaran di dalamnya. (1965) ~Ernesto "Che" Guevara

Leave a Reply

Leave a Reply

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