Hello sobat Newbie, pada kesempatan kali ini saya akan membahas bagaaimana caranya menerapkan Validation dan Error Handling.
Saat ini kalau kita memanggil endpoint http://localhost:8000/post maka tampilan
response nya akan menjadi seperti ini.
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.
Buka file app/Http/Controllers/PostController.php, ubah function index menjadi seperti
dibawah ini. Pada line 14 … ->pagination(2), nilai 2 bisa anda ganti. Nilai ini adalah
berapa jumlah rows yang akan ditampilkan dalam satu halaman.
Ketika kita panggil endpoint http://localhost:8000/post, maka tampilanya seperti
dibawah ini. Kita lihat sekarang response nya menjadi lebih clean, dan lebih nyaman
untuk dibaca oleh programmer.
Validasi Fungsi Create
Untuk membuat validasi pada fungsi create, mari kita ikuti langkah-langkah berikut ini:
1. Saat ini fungsi create memiliki beberapa parameter, diantaranya adalah:
- title
- content
- status
- user_id
2. 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:
- title:
a. Tidak boleh kosong (required)
b. Harus memiliki minimum 5 karakter
- content:
a. Tidak boleh kosong (required)
b. Harus memiliki minimum 10 karakter
- status:
a. Tidak boleh kosong (required)
b. Hanya bisa diisi oleh dua value ini: published dan draft
- user_id:
a. Tidak boleh kosong (required)
b. Value yang di input harus ada di database table users.
3. Itulah rule validasi yang akan kita implementasikan.
4. Kita akan melakukan pengecekan pada semua parameter, jika validasi lolos maka kita akan melanjutkan untuk INSERT ke database.
5. Jika validasi tidak lolos, kita akan memberikan response error dengan status code 400 Bad Request.
Untuk implementasi validasi pada fungsi create, mari kita ikuti langkah-langkah berikut ini:
Buka file app/Http/Controllers/PostsController.php, ubah function store menjadi seperti dibawah ini. Lihat line: 62
Kita coba dengan mengirimkan parameter null, seperti dibawah ini:
Kita coba dengan mengisi paramter yang tidak valid
Kita coba dengan mengisi parameter yang valid
Error Handling
Validasi Fungsi Create
Untuk membuat validasi pada fungsi create, mari kita ikuti langkah-langkah berikut ini:
1. Saat ini fungsi create memiliki beberapa parameter, diantaranya adalah:
- title
- content
- status
- user_id
2. 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:
- title:
a. Tidak boleh kosong (required)
b. Harus memiliki minimum 5 karakter
- content:
a. Tidak boleh kosong (required)
b. Harus memiliki minimum 10 karakter
- status:
a. Tidak boleh kosong (required)
b. Hanya bisa diisi oleh dua value ini: published dan draft
- user_id:
a. Tidak boleh kosong (required)
b. Value yang di input harus ada di database table users.
3. Itulah rule validasi yang akan kita implementasikan.
4. Kita akan melakukan pengecekan pada semua parameter, jika validasi lolos maka kita akan melanjutkan untuk INSERT ke database.
5. Jika validasi tidak lolos, kita akan memberikan response error dengan status code 400 Bad Request.
Untuk implementasi validasi pada fungsi create, mari kita ikuti langkah-langkah berikut ini:
Buka file app/Http/Controllers/PostsController.php, ubah function store menjadi seperti dibawah ini. Lihat line: 62
Kita coba dengan mengirimkan parameter null, seperti dibawah ini:
Kita coba dengan mengisi paramter yang tidak valid
Kita coba dengan mengisi parameter yang valid
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/posts/1 dengan method POST, maka Lumen akan mengembalikan error response Invalid Method seperti gambar dibawah ini.
Error response yang diberikan oleh Lumen secara default dalam bentuk HTML. Sekarang kita akan melakukan Error handling dan memberikan response JSON.
Buka file app/Exceptions/Handler.php diatas Class definition tambahkan code dibawah ini:
Line 51-82
Lalu test di postman dan panggil endpoint GET http://localhost:8000/post/10, maka tampilannya akan seperti ini
dan panggil endpoint POST http://localhost:8000/post/10, maka tampilannya akan seperti ini
Sekian tutorial kali ini
0 Komentar