StudyJam Assignment

Pengantar | Kriteria | Pengujian | Saran | Lainnya

Terdapat beberapa kriteria utama yang harus Anda penuhi dalam membuat proyek Music API.

Kriteria 1: Menggunakan Laravel

Kriteria 2: Menggunakan MySQL sebagai database

Kriteria 3: Menggunakan database migration

Kriteria 4: Menggunakan API Routes

*Jika Anda menggunakan Laravel 11, maka perlu menjalankan perintah php artisan install:api sebelum mendefinisikan routes. Baca lebih lengkap disini.

Kriteria 5: API dapat menyimpan musik

API yang anda buat harus dapat menyimpan musik melalui route:

Objek musik yang disimpan pada server harus memiliki struktur seperti contoh di bawah ini:

{
    "id": 1,
    "title": "Hey Jude", 
    "year": 1968,
    "artist": "The Beatles",  
    "genre": "Pop rock",
    "duration": 430,
    "created_at": 2024-03-31T03:20:51Z,
    "updated_at": 2024-03-31T04:02:55Z
}
Properti yang ditebalkan diolah dan di-generate di sisi server. Berikut penjelasannya: (Klik untuk melihat)

Bila musik berhasil dimasukkan, server harus mengembalikan respons data musik yang baru ditambahkan:

Kriteria 6: API dapat menampilkan seluruh musik

API yang Anda buat harus dapat menampilkan seluruh musik yang disimpan melalui route:

Server harus mengembalikan response dengan:

Jika belum terdapat musik yang dimasukkan, server bisa merespons dengan array kosong.

[]

Kriteria 7: API dapat menampilkan detail musik

API yang Anda buat harus dapat menampilkan detail musik yang disimpan melalui route:

Bila musik dengan id yang dilampirkan ditemukan, maka server harus mengembalikan respons dengan:

Bila musik dengan id yang dilampirkan oleh client tidak ditemukan, maka server harus mengembalikan respons dengan:

Kriteria 8: API dapat mengubah data musik

API yang Anda buat harus dapat menampilkan detail musik yang disimpan melalui route:

Bila musik berhasil diperbarui, server harus mengembalikan respons dengan data musik terbaru:

Bila musik dengan id yang dilampirkan oleh client tidak ditemukan, maka server harus mengembalikan respons dengan:

Kriteria 9: API dapat menghapus musik

API yang Anda buat harus dapat menghapus detail musik yang disimpan melalui route:

Bila musik berhasil dihapus, server harus mengembalikan respons berikut:

Bila musik dengan id yang dilampirkan oleh client tidak ditemukan, maka server harus mengembalikan respons dengan:

Kriteria Opsional

Selain kriteria utama, terdapat kriteria opsional yang yang dapat Anda penuhi agar mendapat nilai yang baik.

Kriteria Opsional 1: Menerapkan data validation

Menerapkan proses Data Validation pada Request Payload sesuai spesifikasi berikut:

Jika terdapat request body yang tidak valid, maka server harus mengembalikan response sebagai berikut:

{
    "message": "The title field is required. (and 1 more error)",
    "errors": {
        "title": [
            "The title field is required."
        ],
        "duration": [
            "The duration field is required."
        ]
    }
}

Jika menggunakan fitur Validation bawaan pada Laravel, maka server otomatis merespons seperti di atas jika terdapat input yang tidak valid. Untuk informasi lebih lanjut mengenai Validation pada Laravel bisa membuka link berikut.

Kriteria Opsional 2: Query Parameter untuk Pencarian Lagu

Menerapkan query parameter pada endpoint GET /api/musics untuk fitur pencarian musik. Berikut ketentuan parameternya:

*Penggunaan kedua parameter tersebut dapat dikombinasikan.

Catatan