Mohon maaf bila gambar rusak anda bisa unduh file pdf disini validation.pdf
Pada Bab ini Kita akan membuat service
menggunakan PHP Lumen yang bisa melakukan handling Validation dan negative
Case.
Tujuan praktek ini adalah untuk
:
1. Mampu
implementasi validation menggunakan Lumen
2. Mampu
melakukan Negative Case handling menggunakan LumenMampu memberikan informasi yang
baik dan relevan ketika mengalami error validasi dan error negative case
A.
Beautify Response Pada Fungsi Read All
Ikuti Langkah-langkah
dibawahini untuk membuat response beautify Implementasi fungsi ini adalah
fungsi index di BanksController.php :
1. Saat
ini kalau kita memanggil endpoint http://localhost:8000/banks, maka
tampilan response nya akan menjadi seperti ini.

2. Kalau
melihat dari response nya ada beberapa data yang tidak kita perlukan, seperti: first_page_url,
from, last_page, to. Pertama kita akan mengubah response nya terlebih dahulu.
3. Buka
file app/Http/Controllers/BanksController.php, ubah function index menjadi
seperti dibawah ini.

Pada baris dibawah ini, nilai 2 bisa anda
ubah. Nilai ini adalah berapa jumlah rows yang akan ditampilkan dalam satu
halaman.
![]()
4. Ketika
kita panggil endpoint http://localhost:8000/banks, maka tampilanya
seperti dibawah ini.

B.
Validasi Fungsi Create Dan Update
Untuk
membuat validasi pada fungsi create, mari kita ikuti langkah-langkah berikut
ini:
Saat
ini fungsi create memiliki beberapa parameter, diantaranya adalah:
- Nama_Bank
- Nama
- Saldo
Parameter tersebut belum divalidasi, artinya
semua nilai bisa kita masukan ke parameter tersebut. Kalau kita coba untuk
memberikan value ‘’ pada parameter tersebut, maka aplikasi akan tetap
melakukan INSERT ke db. Sekarang kita akan melakukan validasi untuk parameter
tersebut dengan rule seperti dibawah ini :
- Nama_Bank:
a. Tidak boleh kosong
(required)
b. Harus memiliki minimum 3
karakter
- Nama
a. Tidak boleh kosong
(required)
b. Harus memiliki minimum 5
karakter
- Saldo:
a. Tidak boleh kosong (required)
b. Harus memiliki minimum 6
karakter
Itulah
rule validasi yang akan kita implementasikan.
Kita akan melakukan pengecekan
pada semua parameter, jika validasi lolos maka kita akan melanjutkan untuk
INSERT ke database.Jika validasi tidak lolos, kita akan memberikan response
error dengan status code 400 Bad Request.
C.
Implementasi Validasi Fungsi Create
Untuk
implementasi validasi pada fungsi create, mari kita ikuti langkah-langkah
berikut ini:
1. Buka
file app/Http/Controllers/PostsController.php, ubah function store
menjadi seperti dibawah ini :

2. Kita
coba dengan mengirimkan parameter null, seperti dibawah ini :

3. Kita
coba dengan mengisi paramter yang tidak valid

4. Kita
coba dengan mengisi parameter yang valid

D.
Implementasi Validasi Fungsi Update
Untuk implementasi validasi pada fungsi
update, mari kita ikuti langkah-langkah berikut ini :
1. Buka
file app/Http/Controllers/PostsController.php, ubah function update menjadi
seperti dibawah ini

2. SIlahkan
dicoba beberapa kasus seperti pada fungsi create

3. Kita
coba dengan mengisi parameter yang tidak valid

4. coba
dengan mengisi parameter yang valid

E.
Gambaran
Umum Error Handling
Saat ini kita hanya fokus
pada positive case saja, kita belum memikirkan apabila ada negative case. Kita
tidak menghiraukan apakah request parameter yang dikirim sudah sesuai dengan yang
kita harapkan atau belum. Bagaimana seandainya user mengirim request dengan
Method yang salah? Bagaimana apabila ID yang dikirim tidak ada di database Ketika
melakukan Update, Delete atau Show? Pada dasarnya Lumen sudah menyediakan Error
Handling untuk menangani masalah tersebut.
Sebagai contoh, jika kita
mengakses http://localhost:8000/banks/10 dengan method POST, maka Lumen akan
mengembalikan error response Invalid Method seperti gambar dibawah ini.

Kenapa ini terjadi? Karena di file
routes/web.php, kita mendefinisikan url ini http://localhost:8000/bank/1 hanya
menerima method GET, PUT dan DELETE.

Error
response yang diberikan oleh Lumen secara default dalam bentuk HTML. Sekarang
kita kan melakukan Error handling dan memberikan response JSON
F.
Implementasi
Error Handling
Untuk implementasi Error
Handling, mari kita ikuti langkah-langkah berikut ini:
1.
Sebetulnya kita sudah melakukan error
handling, lihat pada function show, update dan destroy, kita akan menemukan
code seperti dibawah ini:

Fungsi
abort(404) diatas (contoh pada function show) adalah salah satu implementasi error
handling. Hanya saja implementasi ini belum memberikan error response JSON, masih
berbentuk HTML yang merupakan fungsi bawaan dari Lumen.
2.
Sebagai contoh kalau kita panggil endpoint
GET http://localhost:8000/bank/10 , maka tampilannya akan seperti ini
Sekarang kita akan
mengubah response tersebut menjadi response dalam bentuk JSON.
3.
Buka file app/Exceptions/Handler.php
diatas Class definition tambahkan code dibawah ini. Line 12-15.

4. Buka
file app/Exceptions/Handler.php ubah function render menjadi seperti dibawah
ini.

5.
Buka file .env ubah APP_DEBUG=true manjadi
APP_DEBUG=false
6.
Restart server dengan perintah php -S
localhost:8000 -t public
7.
Ketika kita panggil endpoint POST
http://localhost:8000/bank/10 , maka tampilannya akan seperti ini

8.
kita panggil endpoint GET
http://localhost:8000/bank/10 , maka tampilannya akan seperti Ini

Tidak ada komentar:
Posting Komentar