Saya mencoba membuat API sisanya untuk aplikasi android. Misalkan saya punya users
tabel dengan (id, name, email)
dan songs
meja dengan (id, song_name, album)
dan kaya bergabung hubungan antara mereka sebagai streams
memiliki (user_id, song_id, listen_count)
. Saya ingin mengambil detail tentang semua aliran dan menunjukkannya di aplikasi sebagai daftar. Daftar akan menampilkan nama lagu, nama album, nama pengguna dan jumlah mendengarkan. Saya melihat tiga opsi yang masuk akal -
GET
ke/streams
dan mengambil daftar semuasong_ids
danuser_ids
. Kemudian buatGET
ke/user/:id
dan/song/:id
untuk setiap pengguna dan id lagu untuk mendapatkan informasi pengguna dan lagu.GET
ke/streams
dan mengambil daftar semuauser_ids
dansong_ids
. Kemudian salah satuGET
untuk/user?ids=<comma_separated_ids>
mengambil informasi tentang semua pengguna danGET
untuksong?ids=<comma_separated_ids>
mengambil informasi tentang semua lagu.GET
untuk/streams
dan mengambil semuanya dalam satu panggilan. Sesuatu seperti -[ { "user_id" : 10, "song_id" : 14, "listen_count" : 5, "user" : { "id" : 10, "name" : "bla", "email" : "bla", }, "song" : { "id" : 14, "name" : "blu", "album" : "blu" } }, ... ]
Saya tergoda untuk menggunakan opsi 3 karena memberi saya segalanya dalam satu panggilan, tetapi saya tidak berpikir itu sangat tenang dan saya khawatir itu tidak akan terukur. Opsi 2 baik tetapi dibutuhkan 3 panggilan yang berarti cukup banyak waktu memuat daftar. Dan opsi 1 mengikuti istirahat tetapi akan menerima banyak panggilan untuk menunjukkan daftar dan melakukan begitu banyak panggilan dari perangkat seluler tidak layak.
Apa yang akan menjadi cara yang disarankan untuk melakukan ini?