Ini adalah contoh proyek API untuk keperluan tes pemrograman dengan menggunakan Laravel. Proyek ini hanya mempunyai satu modul courier dengan fitur CRUD yang tanpa menggunakan view/front end.
Proyek ini dibangun pada OS Windows 11 dengan detail versi sebagai berikut:
- PHP 8.2 (via Laragon)
- Laravel 10
- MySQL 5.7.33 (via Laragon)
Dokumentasi proyek ini ada pada bagian Wiki - Dokumentasi
Buka di cmd atau aplikasi terminal dan arahkan ke folder ini. Kemudian, jalankan perintah berikut:
Install dependensi Laravel melalui Composer dengan perintah,
composer installSalin .env.example menjadi .env dengan perintah,
cp .env.example .envBuat APP_KEY proyek dengan perintah,
php artisan key:generateSilakan membuat database MySQL terlebih dahulu dan jika mengikuti proyek ini, maka gunakan courier_backend sebagai nama database. Kemudian sesuaikan detail autentikasi koneksi MySQL Anda.
Lakukan migrasi model Courier dengna perintah,
php artisan migrateJalankan seeder untuk model Courier dengan perintah berikut,
php artisan db:seed --class=CourierTableSeederSelesai! Jalankan aplikasi melalui built-in webserver dengan perintah,
php artisan serveProyek ini menggunakan route untuk fitur CRUD antara lain
| Nama Route | Request Method | Endpoint | Hasil |
|---|---|---|---|
| index | GET | /api/couriers |
menampilkan daftar seluruh item courier |
| show | GET | /api/couriers/{id} |
mengembalikan item courier pada id yang cocok |
| store | POST | /api/couriers |
membuat item courier yang baru |
| update | PUT | /api/couriers/{id} |
memperbarui data courier pada id yang cocok |
| destroy | DELETE | /api/courers/{id} |
menghapus item courier pada id yang cocok |
Pada endpoint /api/couriers bisa ditambahkan maing-masing parameter dan tanpa digabungkan satu sama lain. Parameter tersebut yaitu,
pageSize=[int]untuk mengaktifkan pagination pada luarannya.sort=-DOJatausort=-dateofjoineduntuk penyortiran datacouriersecara menurun (Descending /DESC). Sedangkansort=DOJatausort=dateofjoinedadalah penyortiran data secara naik (Ascending /ASC).search=[nama courier]untuk mencari namacourieryang diinginkan.level=[int,int,...]untuk filter datacourierdengan level yang diinginkan.
Adapun data courier akan dihapus secara permanen dan tidak menggunakan flag atau metode soft delete.
Proyek ini sudah ditambahkan pengujian menggunakan PEST dengan hasil terbaru seperti berikut,
Pada file composer.json sudah diubah agar PEST dapat dieksekusi melalui perintah composer script seperti berikut
composer testuntuk eksekusi pengujian saja.composer test-coverageuntuk eksekusi pengujian dengan code coverage.composer test-coverage-htmluntuk menyimpan laporan code coverage dalam format HTML ke direktori tertentu.
Proyek ini dibuat oleh Faiq Najib.
The Laravel framework is open-sourced software licensed under the MIT license.
