wir haben eine Suche/list-Ressource:REST api Paginierung: make Seitengröße ein Parameter (konfigurierbar von außen)
Intern werden die Seitengröße ist statisch und gibt 20 Elemente. Der Benutzer kann vorwärts gehen, indem er die Seitenzahl erhöht. Aber flexibler sein wir jetzt auch denken die Größe einer Seite zu belichten:
http://xxxx/users/?page=1&size=20
Als solches ist dies flexibel wie der Client jetzt Netzwerk-Anrufe vs. Größe der Antwort entscheiden kann, bei der Suche. Natürlich hat dies den Nachteil, dass die Server-Fest entweder zufällig getroffen werden könnte oder maliciosly absichtlich: http://xxxx/users/?page=1&size=1000000
Für Robustheit die Lösung sein könnte eine Obergrenze von Seitengröße (zB 100), und wenn sie überschritten werden konfigurieren entweder eine Fehlerantwort oder eine HTTP-Umleitung zu der URL mit dem höchstmöglichen Seitengrößenparameter.
Was denkst du?
Ich bin mehr besorgt, dass unnötige hohe Nutzlast erzeugt wird und Bandbreite verschwendet wird. Sicher, die Anwendung wird nicht abstürzen, aber es wird unnötige Belastung auf das Such-Backend und auf die xml/json-Antwort-Gebäude verursachen. Aus meiner Sicht ist das Senden von size = 1000000 ziemlich seltsam und ist entweder zufällig oder bösartig. sicher, Paging-Links sind enthalten :) –
Verstanden - aber für jemanden, der Data Mining oder andere Aktionen, die einen großen Datensatz benötigen, ich kann es passiert sehen. Ehrlich gesagt würde ich eine schlechte Anfrage (400) werfen, mit einer Fehlermeldung, die die maximale Seitengröße angibt. Die Rückgabe einiger serverdefinierter Items sieht für den Benutzer so aus, als ob er nach 100000 gefragt hätte, aber 200, was wahrscheinlich bedeutet, dass nur 200 Items gefunden werden können. – Gandalf
Wenn Sie die nächsten/vorherigen Paging-Links zurücksenden, sollte klar sein, dass mehr Daten vorhanden sind. – Nate