Aus Wikipedia: Uniform Resource Locator
Ein Pfad , der Daten enthält, die normalerweise in hierarchischer Form organisiert sind und als Folge von Segmenten angezeigt werden, die durch Schrägstriche getrennt sind.
Eine optionale Abfrage , die durch ein Fragezeichen (?) Vom vorhergehenden Teil getrennt ist und eine Abfragezeichenfolge nicht hierarchischer Daten enthält .
- Entsprechend dem konzeptionellen Design der URL implementieren wir möglicherweise ein PathParam für hierarchische Daten / Anweisungen / Locator-Komponenten oder ein QueryParam, wenn die Daten nicht hierarchisch sind. Dies ist sinnvoll, da Pfade natürlich geordnet sind, während Abfragen Variablen enthalten, die beliebig geordnet werden können (ungeordnete Variablen / Wert-Paare).
Ein vorheriger Kommentator schrieb:
Ich denke, wenn der Parameter eine bestimmte Entität identifiziert, sollten Sie eine Pfadvariable verwenden.
Ein anderer schrieb:
Verwenden Sie @PathParam zum Abrufen basierend auf der ID. Benutzer @QueryParam für Filter oder wenn Sie eine feste Liste von Optionen haben, die Benutzer übergeben können.
Ein weiterer,
Ich würde empfehlen, alle erforderlichen Parameter in den Pfad einzufügen, und alle optionalen Parameter sollten auf jeden Fall Abfragezeichenfolgenparameter sein.
- Man könnte jedoch ein flexibles, nicht hierarchisches System zur Identifizierung bestimmter Entitäten implementieren! Eine SQL-Tabelle verfügt möglicherweise über mehrere eindeutige Indizes und ermöglicht die Identifizierung von Entitäten mithilfe einer beliebigen Kombination von Feldern, die einen eindeutigen Index enthalten. Verschiedene Kombinationen (möglicherweise auch anders geordnet) können für Links von verschiedenen verwandten Entitäten (Referrern) verwendet werden. In diesem Fall handelt es sich möglicherweise um nicht hierarchische Daten, die zur Identifizierung einzelner Entitäten verwendet werden. In anderen Fällen werden möglicherweise nur bestimmte Variablen / Felder - bestimmte Komponenten eindeutiger Indizes - angegeben und eine Liste / ein Satz von Datensätzen abgerufen. In solchen Fällen ist es möglicherweise einfacher, logischer und sinnvoller, die URLs als QueryParams zu implementieren!
Könnte eine lange hexadezimale Zeichenfolge den Wert von Schlüsselwörtern im Rest des Pfads verwässern / verringern? Es könnte sich lohnen die möglichen SEO-Auswirkungen der Platzierung von Variablen / Werten im Pfad oder in der Abfrage berücksichtigenund die Auswirkungen auf die Benutzeroberfläche, ob Benutzer die Hierarchie von URLs durch Bearbeiten des Inhalts der Adressleiste durchlaufen / erkunden können sollen. Meine 404 Not Found-Seite verwendet SSI-Variablen, um defekte URLs automatisch an ihre Eltern weiterzuleiten! Suchroboter können auch die Pfadhierarchie durchlaufen. Auf der anderen Seite entferne ich persönlich, wenn ich URLs in sozialen Medien teile, alle privaten eindeutigen Kennungen manuell - normalerweise durch Abschneiden der Abfrage von der URL, wobei nur der Pfad übrig bleibt. In diesem Fall ist es nützlich, eindeutige Kennungen zu platzieren im Pfad und nicht in der Abfrage. Ob wir die Verwendung von Pfadkomponenten als grobe Benutzeroberfläche erleichtern möchten, hängt möglicherweise davon ab, ob die Daten / Komponenten für Menschen lesbar sind oder nicht. Die Frage der menschlichen Lesbarkeit bezieht sich etwas auf die Frage der Hierarchie: oft, Daten, die als für Menschen lesbare Schlüsselwörter ausgedrückt werden können, sind ebenfalls hierarchisch. Hierarchische Daten können häufig als lesbare Schlüsselwörter ausgedrückt werden. (Suchmaschinen selbst können so definiert werden, dass sie die Verwendung von URLs als Benutzeroberfläche erweitern.) Hierarchien von Schlüsselwörtern oder Direktiven sind möglicherweise nicht streng geordnet, aber sie sind normalerweise so nah, dass wir alternative Fälle im Pfad abdecken könnenBeschriften Sie eine Option als "kanonischen" Fall .
Grundsätzlich gibt es verschiedene Arten von Fragen, die wir mit der URL für jede Anfrage beantworten können:
- Welche Art von Aufzeichnung / Sache fordern / dienen wir?
- Für welche interessieren wir uns?
- Wie wollen wir die Informationen / Aufzeichnungen präsentieren?
Q1 wird mit ziemlicher Sicherheit am besten vom Pfad oder von PathParams abgedeckt. Q3 (das wahrscheinlich über einen Satz beliebig geordneter optionaler Parameter und Standardwerte gesteuert wird); wird mit ziemlicher Sicherheit am besten von QueryParams abgedeckt. F2: Es kommt darauf an ...