Misalnya saya punya entitas: Klien, Laporan. Klien mungkin memiliki banyak Laporan dan saya pikir titik akhir untuk satu manajemen Laporan harus disarangkan seperti ini:
/clients/{client_id}/reports/{report_id}
Adapun semua laporan dari satu klien titik diharapkan:
/clients/{client_id}/reports
Tetapi bagaimana seharusnya terlihat titik akhir untuk mendapatkan semua Laporan dari semua Klien agar API konsisten dan dirancang dengan baik.
Pendekatan saya:
- (Saya melihatnya di beberapa google api) gunakan "-" sebagai ganti dan parsing sebagai "semua":
/clients/-/reports
Ini membuat format endpoint tetap sama, tetapi terlihat agak tidak biasa, tidak dapat menemukan rfc yang menyarankan cara ini.
- Buat titik akhir yang terpisah hanya untuk semua laporan:
/reports
Tetapi untuk mendapatkan Laporan Klien itu masih:
/clients/{client_id}/reports
- Refactor titik akhir untuk membuat "klien" bukan orangtua, tetapi hanya parameter filter:
/reports?client={client_id}
- laporan satu klien
/reports
- laporan semua klien
Dalam hal menambahkan titik akhir baru untuk memposting laporan untuk klien tertentu, itu mungkin terlihat jelek, karena itu akan menjadi permintaan POST dengan parameter di URL.
Apakah ada saran ide lain?