Sebelum mulai tutorialnya, kalian harus menyelesaikan dulu modul dengan judul 'PHP Lumen Rest CRUD' atau kalian bisa klik link berikut https://bit.ly/36C1v10
Beautify Response pada Fungsi Read All
- Saat ini kalau kita memanggil endpoint http://localhost:8000/posts, maka tampilan
response nya akan menjadi seperti ini.
- Buka file app/Http/Controllers/PostsController.php, ubah function index menjadi seperti
dibawah ini.
- Pertama kita panggil endpoint http://localhost:8000/posts Hasilnya akan seperti ini
- Lalu kita panggil lagi http://localhost:8000/posts Seperti berikut
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.
Membuat Table users
Untuk membuat table users, mari kita ikuti langkah-langkah berikut ini:
1. Membuat database migration dengan menjalankan command dibawah ini pada terminal:
php artisan make:migration create_users_table
2. Buka file database/migrations/...create_users_table.php, dan ubah menjadi seperti
dibawah ini
php artisan migrate
4. Kemudian insert satu row ke table users
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
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
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/posts/1 dengan method POST, maka hasilnya akan error.
Kenapa ini terjadi? Karena di file routes/web.php, kita mendefinisikan url ini http://localhost:8000/posts/1 hanya menerima method GET, PUT dan DELETE.
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 pada tutorial sebelumnya.
2. 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.
3. Sebagai contoh kalau kita panggil endpoint GET http://localhost:8000/post/10, maka
tampilannya error.
4. Sekarang kita akan mengubah response tersebut menjadi response dalam bentuk
JSON.
5. Buka file app/Exceptions/Handler.php diatas Class definition tambahkan code dibawah
ini. Line 12-15.
6. Buka file app/Exceptions/Handler.php ubah function render menjadi seperti dibawah ini.
8. Restart server
9. Ketika kita panggil endpoint POST http://localhost:8000/post/10, maka tampilannya
akan seperti ini
10. kita panggil endpoint GET http://localhost:8000/post/10, maka tampilannya akan seperti
ini
Terima Kasih :)
















No comments:
Post a Comment