In MVC sollte, Paginieren Informationen im Pfad oder Abfragezeichenfolgeflag gehen?
-
22-07-2019 - |
Frage
Im Pfad:
Format: http://mydomain.com/ {Kategorie} / { Subkategorie} / {Seitennummer} / {} pagesize
Beispiel: http://mydomain.com/books/ Thriller / 25.03
Im Abfragezeichenfolgeflag:
Format: http://mydomain.com/ {Kategorie} / { Subkategorie}? Seitennummer = {} & Seitennummer pagesize = {} pagesize
Beispiel: http://mydomain.com/ Bücher / Thriller? Seitennummer = 3 & pagesize = 25
Ich mag es, alles auf dem Weg, aber mein Problem dabei ist, dass, während es liegt auf der Hand (oder zumindest etwas offensichtlich), was „Bücher“ und „Thriller“ sind in erstem Beispiel der "3" und "25" scheinen ziemlich willkürlich dagegen.
Gibt es eine kanonische Methode zur Bestimmung dessen, was wo in MVC geht, oder ist es wirklich nur bis zu dem Entwickler?
Lösung
Ich ziehe es Dinge wie Seitennummern in dem Abfragezeichenfolgeflag Variablen zu sein. Ich denke, es gibt einen Unterschied in Beschreibbarkeit zwischen
http://mydomain.com/books/thriller?pagesize=50&page=4
und
http://mydomain.com/books/thriller/50/4
Der Punkt (für mich) die saubere URLs, die für sie mehr beschreibend und lesbar zu sein, und ich finde, das erste Beispiel, genau das sein.
Ein interessanter Punkt gemacht von JohnRudolfLewis ist:
Eine Daumenregel, die ich folge dass, wenn das Argument erforderlich ist, Sehen Sie den Pfad verwenden, wenn die Argument ist optional, immer verwenden Abfragezeichenfolgeflag Argumente.
Andere Tipps
Eine Daumenregel, die ich folgen ist, dass, wenn das Argument erforderlich ist, sollten Sie den Pfad, wenn das Argument optional ist, immer Abfragezeichenfolgeflag Argumente verwenden.
Insgesamt würde ich bleiben, was auch immer macht die URL besser lesbar aussehen.
Diese Seite bringt es auf den Abfragezeichenfolgeflag: https://stackoverflow.com/questions?page=2&pagesize=30
Nun, es ist offensichtlich bis zu Ihnen. Aber, du bist eine RESTful Interface entwerfen, die lesbar sein menschlichen angenommen hat. Die Abfragezeichenfolgeflag ist viel besser in dieser Hinsicht. Ansonsten sind Sie auf zwei Zahlen suchen, der wirklich alles sein könnte. Und wer wird den Auftrag erinnern?
Gibt es eine kanonische Methode zur Bestimmung dessen, was wo in MVC geht, oder ist es wirklich nur bis zu dem Entwickler?
Es ist bis zu Ihnen.
MVC ist über die Organisation / Ablauf Ihres serverseitigen Code und trennt den Blick von der Business-Schicht, nicht so sehr um Abfrageparameter.
Sie können auch Folgendes berücksichtigen
Format
http://mydomain.com/{category}/{subcategory}/page/{pageNumber}/results/{pageSize}
Beispiel
http://mydomain.com/books/thriller/page/3/results/25
Es ist ziemlich viel bis zum Entwickler. Ich würde den pagesize in der URL setzen sagen.