Späte Antwort, aber ich werde dem, was geteilt wurde, einige zusätzliche Erkenntnisse hinzufügen, nämlich, dass eine Anfrage verschiedene Arten von "Parametern" enthält, und Sie sollten dies berücksichtigen.
- Locators - ZB Ressourcenkennungen wie IDs oder Aktion / Ansicht
- Filter - ZB Parameter, mit denen die Ergebnismenge gesucht, sortiert oder eingegrenzt werden kann.
- Status - zB Sitzungsidentifikation, API-Schlüssel, was auch immer.
- Inhalt - ZB zu speichernde Daten.
Schauen wir uns nun die verschiedenen Stellen an, an denen diese Parameter gespeichert werden könnten.
- Fordern Sie Header und Cookies an
- URL-Abfragezeichenfolge ("GET" -Vars)
- URL-Pfade
- Body Query String / Multipart ("POST" -Vars)
Im Allgemeinen möchten Sie, dass der Status in Headern oder Cookies festgelegt wird, je nachdem, um welche Art von Statusinformationen es sich handelt. Ich denke, wir können uns alle darauf einigen. Verwenden Sie bei Bedarf benutzerdefinierte http-Header (X-My-Header).
In ähnlicher Weise hat Content nur einen Platz, zu dem er gehört, und zwar im Anfragetext, entweder als Abfragezeichenfolgen oder als http-Multipart- und / oder JSON-Inhalt. Dies stimmt mit dem überein, was Sie vom Server erhalten, wenn er Ihnen Inhalte sendet. Sie sollten also nicht unhöflich sein und es anders machen.
Locators wie "id = 5" oder "action = refresh" oder "page = 2" sind als URL-Pfad sinnvoll, z. B. mysite.com/article/5/page=2
wenn Sie teilweise wissen, was jedes Teil bedeuten soll (Grundlagen wie Artikel und 5 bedeutet natürlich, dass ich die Daten vom Typ Artikel mit der ID 5) bekomme und zusätzliche Parameter als Teil der URI angegeben werden. Sie können in Form von page=2
oder page/2
wenn Sie wissen, dass nach einem bestimmten Punkt in der URI die "Ordner" gepaarte Schlüsselwerte sind.
Filter werden immer in die Abfragezeichenfolge eingefügt, da sie zwar Teil der Suche nach den richtigen Daten sind, jedoch nur dazu dienen, eine Teilmenge oder Änderung dessen zurückzugeben, was die Locators allein zurückgeben. Die Suche in mysite.com/article/?query=Obama
(Teilmenge) ist ein Filter, ebenso wie /article/5?order=backwards
(Modifikation). Überlegen Sie, was es tut, nicht nur, wie es heißt!
Wenn "view" das Ausgabeformat bestimmt, handelt es sich um einen filter ( mysite.com/article/5?view=pdf
), da er eine Änderung der gefundenen Ressource zurückgibt, anstatt auf die gewünschte Ressource zuzugreifen. Wenn es stattdessen entscheidet, welchen bestimmten Teil des Artikels wir sehen ( mysite.com/article/5/view=summary
), ist es ein Locator.
Denken Sie daran, dass das Eingrenzen einer Reihe von Ressourcen gefiltert wird. Wenn Sie etwas Bestimmtes innerhalb einer Ressource suchen, suchen Sie ... duh. Die Teilmengenfilterung kann eine beliebige Anzahl von Ergebnissen zurückgeben (sogar 0). Beim Auffinden wird immer die bestimmte Instanz von etwas gefunden (falls vorhanden). Bei der Änderungsfilterung werden dieselben Daten wie beim Locator zurückgegeben, außer bei Änderungen (sofern eine solche Änderung zulässig ist).
Ich hoffe, dies hat den Leuten einige Eureka-Momente beschert, wenn sie sich nicht sicher sind, wo sie etwas unterbringen sollen!