Genellikle sonuçta meta veri olarak sonuçların sayısını döndürürdüm. Bunun normal bir REST uygulaması olup olmadığından emin değilim, ancak fazladan bir veri değil ve çok kesin. Genellikle birçok hizmetin sayfalandırılması vardır, bir kerede büyük sonuçların döndürülmesi pratik değildir. Şahsen küçük sonuç kümeleri için sayfalama olduğunda sinirlenirim. Boşsa number_of_records : 0
, boş liste / dizi olarak geri dönün ve kitapları çıkarın books : []
.
{
meta: {
number_of_records : 2,
records_per_page : 10,
page : 0
},
books : [
{id:1},
{id:27}
]
}
EDIT (birkaç yıl sonra): Martin Wickman'dan cevap çok daha iyi, işte nedenini açıklatan "kısa".
Sayfalama ile uğraşırken her zaman içindekiler veya değişiklik sırasını değiştirme olasılığını göz önünde bulundurun. Gibi, ilk istek geliyor, 24 sonuç, ilk 10'a dönersiniz. Bundan sonra, "yeni kitap" eklenir ve şimdi 25 sonuç alırsınız, ancak orijinal istekle 10. sırada yer alır. İlk kullanıcı 2. sayfayı istediğinde, "yeni kitap" alamazdı. Aşağıdaki API çağrılarıyla gönderilmesi gereken "istek kimliği" ni sağlamak, ardından bir şekilde saklanıp "istek kimliği" ile ilişkilendirilmesi gereken "eski" sonuç kümesinden sonraki sayfayı döndürmek gibi bu tür sorunları çözmenin yolları vardır. Alternatif, "ilk istekden bu yana sonuç listesi değişti" gibi bir alan eklemek.
Genel olarak, eğer yapabilirseniz, fazladan çaba göstermeye ve sayfalama yapmaktan kaçının. Sayfalandırma, mutasyona uğratılabilen ve bu değişiklikleri takip edebilen ek durumdur, hataya açıktır, daha da fazladır, çünkü hem sunucunun hem de istemcinin bunu yapması gerekir.
Aynı anda işlenemeyecek kadar çok veriye sahipseniz, o listenin bir kısmı için tüm sonuçlar ve ayrıntılarla birlikte "id list" i döndürmeyi düşünün ve kaynak için multi_get / get_by_id_list API çağrıları sağlayın.