Saya mencoba membuat API sisanya untuk aplikasi android. Misalkan saya punya userstabel dengan (id, name, email)dan songsmeja dengan (id, song_name, album)dan kaya bergabung hubungan antara mereka sebagai streamsmemiliki (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 -
GETke/streamsdan mengambil daftar semuasong_idsdanuser_ids. Kemudian buatGETke/user/:iddan/song/:iduntuk setiap pengguna dan id lagu untuk mendapatkan informasi pengguna dan lagu.GETke/streamsdan mengambil daftar semuauser_idsdansong_ids. Kemudian salah satuGETuntuk/user?ids=<comma_separated_ids>mengambil informasi tentang semua pengguna danGETuntuksong?ids=<comma_separated_ids>mengambil informasi tentang semua lagu.GETuntuk/streamsdan 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?