Mungkin ada dua pendekatan tergantung pada logika sisi server Anda.
Pendekatan 1: Ketika server tidak cukup pintar untuk menangani status objek.
Anda dapat mengirim semua id unik yang di-cache ke server, misalnya ["id1", "id2", "id3", "id4", "id5", "id6", "id7", "id8", "id9", "id10"] dan parameter boolean untuk mengetahui apakah Anda meminta catatan baru (tarik untuk menyegarkan) atau catatan lama (muat lebih banyak).
Sever Anda harus bertanggung jawab untuk mengembalikan catatan baru (memuat lebih banyak catatan atau catatan baru melalui tarikan untuk menyegarkan) serta id dari catatan yang dihapus dari ["id1", "id2", "id3", "id4", "id5", " id6 "," id7 "," id8 "," id9 "," id10 "].
Contoh: -
Jika Anda meminta memuat lebih dari itu permintaan Anda akan terlihat seperti ini: -
{
"isRefresh" : false,
"cached" : ["id1","id2","id3","id4","id5","id6","id7","id8","id9","id10"]
}
Sekarang anggaplah Anda meminta catatan lama (muat lebih banyak) dan anggap catatan "id2" diperbarui oleh seseorang dan catatan "id5" dan "id8" dihapus dari server maka respons server Anda akan terlihat seperti ini: -
{
"records" : [
{"id" :"id2","more_key":"updated_value"},
{"id" :"id11","more_key":"more_value"},
{"id" :"id12","more_key":"more_value"},
{"id" :"id13","more_key":"more_value"},
{"id" :"id14","more_key":"more_value"},
{"id" :"id15","more_key":"more_value"},
{"id" :"id16","more_key":"more_value"},
{"id" :"id17","more_key":"more_value"},
{"id" :"id18","more_key":"more_value"},
{"id" :"id19","more_key":"more_value"},
{"id" :"id20","more_key":"more_value"}],
"deleted" : ["id5","id8"]
}
Tetapi dalam hal ini jika Anda memiliki banyak catatan dalam cache lokal misalkan 500, maka string permintaan Anda akan terlalu panjang seperti ini: -
{
"isRefresh" : false,
"cached" : ["id1","id2","id3","id4","id5","id6","id7","id8","id9","id10",………,"id500"]//Too long request
}
Pendekatan 2: Ketika server cukup pintar untuk menangani status objek sesuai tanggal.
Anda dapat mengirim id catatan pertama dan catatan terakhir dan waktu permintaan sebelumnya. Dengan cara ini permintaan Anda selalu kecil bahkan jika Anda memiliki banyak catatan dalam cache
Contoh: -
Jika Anda meminta memuat lebih dari itu permintaan Anda akan terlihat seperti ini: -
{
"isRefresh" : false,
"firstId" : "id1",
"lastId" : "id10",
"last_request_time" : 1421748005
}
Server Anda bertanggung jawab untuk mengembalikan id dari catatan yang dihapus yang dihapus setelah last_request_time serta mengembalikan catatan yang diperbarui setelah last_request_time antara "id1" dan "id10".
{
"records" : [
{"id" :"id2","more_key":"updated_value"},
{"id" :"id11","more_key":"more_value"},
{"id" :"id12","more_key":"more_value"},
{"id" :"id13","more_key":"more_value"},
{"id" :"id14","more_key":"more_value"},
{"id" :"id15","more_key":"more_value"},
{"id" :"id16","more_key":"more_value"},
{"id" :"id17","more_key":"more_value"},
{"id" :"id18","more_key":"more_value"},
{"id" :"id19","more_key":"more_value"},
{"id" :"id20","more_key":"more_value"}],
"deleted" : ["id5","id8"]
}
Tarik Untuk Menyegarkan: -
Muat lebih banyak