URL / URI Tools

URI-Template testenjeden Ausdruck nachvollziehen

Ein Template und ein JSON-Objekt eingeben. URI und Teilresultate erscheinen nebeneinander.

URI-Template testen

URI-Template

Variablen als JSON

Templates und Variablen bleiben in diesem Browser. Die Adressen werden nicht aufgerufen.

Expandierte URI

Ausgelassene Variablen: Keine

Unbenutzte JSON-Schlüssel: Keine

Details der Ausdrücke

Zeile 1, Spalte 24

{/version,resource}
  • Variable: version · Definiert
  • Variable: resource · Definiert

Expandierter Teil: /v1/search

Zeile 1, Spalte 43

{?q,page,tags*}
  • Variable: q · Definiert
  • Variable: page · Definiert
  • Variable: tags* · Definiert

Expandierter Teil: ?q=hello%20world&page=2&tags=red&tags=blue

2 von 2 Ausdrücken angezeigt

Syntax der Expansion

RFC 6570 Level 4: {var}, {+var}, {#var}, {.var}, {/var}, {;var}, {?var}, {&var}. :n begrenzt das Präfix; * expandiert Listen oder Maps einzeln.

Grenzen in UTF-16-Einheiten: Template 16.384, JSON 65.536, Ausgabe 262.144; höchstens 500 Ausdrücke.

2 Ausdrücke · 0 ausgelassene Variablen · 75 Ausgabeeinheiten

Ein Schrägstrich in einer Kennung hat eine andere Bedeutung als ein Schrägstrich zwischen Pfadsegmenten. Wer ein URI-Template testen möchte, braucht deshalb die tatsächlichen Werte: Erst damit wird sichtbar, welche Zeichen der Operator kodiert und welche er beibehält.

Ein URL-Template kann außerdem Listen, Maps und optionale Werte enthalten. Hier lassen sich diese Formen nach RFC 6570 expandieren, ohne zunächst ein vollständiges API-Beispiel zu programmieren. Relative Referenzen sind ebenfalls zulässig.

URI-Template testen und Ursachen erkennen

Das verschwundene Feld finden

In der Ansicht „URI-Template testen“ lässt sich jede Expansion bis zur ursprünglichen Position zurückverfolgen. Fehlt ein Abfrageparameter, zeigen die Details, ob die Variable unbekannt, null oder eine leere Sammlung ist. Leere Zeichenfolgen erscheinen als eigener Zustand.

Farbige Werte füllen passende Stellen im Template und bilden Pfad- und Abfragesegmente.

Die Wirkung des Sterns vergleichen

{?tags} erzeugt einen Wert mit Kommas. {?tags*} wiederholt den Parameternamen für jedes Listenelement. Bei einer Map verwendet der Stern dagegen die einzelnen Schlüssel. Der Vergleich der Teilresultate hilft, diese unterschiedliche Struktur vor der Integration zu erkennen.

Drei Listenelemente werden oben zu einem Wert gruppiert und unten in drei separate Abfragepaare aufgeteilt.

Wertformen und Aktualisierung bewusst wählen

01

Namen unverändert übernehmen

user.id bezeichnet den vollständigen Schlüssel "user.id", keinen Pfad zu einem Unterobjekt. Auch Prozentsequenzen in Namen werden nicht dekodiert. Großschreibung und Kodierung müssen im Template und JSON übereinstimmen.

02

Beispiele nach ihrer Bedeutung wählen

Das Beispiel für reservierte Zeichen bewahrt Schrägstriche innerhalb eines Pfades. Das zusammengesetzte Beispiel zeigt Listen, Maps und Unicode-Präfixe. Vor dem Laden erscheint eine Vorschau; anschließend stellt Rückgängig Eingaben und Ergebnis einmal wieder her.

03

Erst das aktuelle Ergebnis exportieren

Automatische Expansion wartet 350 ms nach einer Änderung. Ausgeschaltet stehen die Schaltfläche und Ctrl/Cmd + Enter bereit. Jede Eingabeänderung sperrt alte Exporte, bis die aktuellen Werte erfolgreich verarbeitet wurden.

Kodierung und Daten ohne versteckte Umwandlung

Alle vier Syntaxstufen

URI-Template testen unterstützt einfache Expansion sowie +, #, ., /, ;, ? und &. Ein Präfix umfasst 1–9999 Unicode-Zeichen; * löst Listen und Maps auf. Prozentkodierung und Trennzeichen folgen dem Operator und sind keine frei kombinierbaren Optionen.

Numerische Kennungen bleiben exakt

JSON-Zahlen werden als ursprünglicher Text verarbeitet. 9007199254740993 wird dadurch nicht gerundet; auch -0 und Exponentenschreibweise bleiben erhalten. Boolesche Werte erscheinen als true oder false. Die Anwendung wandelt Zahlen nicht zwischen Dezimal- und Exponentenschreibweise um.

Fehler haben eine Position

Syntaxfehler im Template und JSON nennen Zeile und Spalte. Doppelte Schlüssel werden abgelehnt, verschachtelte Werte mit JSON Pointer bezeichnet. Unbekannte Variablen sind hingegen kein Syntaxfehler: Eine vollständig ausgelassene Expansion kann dem Standard entsprechen.

Vollständige Details im Bericht

Kopieren liefert nur die URI. Der JSON-Bericht enthält Template, unveränderten JSON-Eingabetext, alle Ausdrücke sowie ausgelassene und unbenutzte Namen. Auf der Seite erscheinen jeweils 50 Ausdrücke; der Download enthält auch die noch nicht angezeigten Einträge.

Verbindliche Eingabe- und Ausgabegrenzen

Ein flaches Variablenobjekt
Die JSON-Wurzel muss ein Objekt sein. Werte dürfen Zeichenfolgen, Zahlen, boolesche Werte, null oder Listen und Maps skalarer Elemente sein. Verschachtelte Container werden auch in unbenutzten Variablen abgelehnt. Dateiimport und mehrere Variablensätze gehören nicht zu diesem Werkzeug.
Leer ist nicht undefiniert
Fehlende Schlüssel, null und leere Sammlungen werden ausgelassen; null-Mitglieder werden übersprungen. Eine leere Zeichenfolge erzeugt mit {?x} dagegen ?x= und mit {;x} nur ;x. Ein leeres Template ist bei gültigem Variablen-JSON erlaubt.
Schlüsselnamen bleiben unverändert
Namen unterscheiden Groß- und Kleinschreibung. Punkte greifen nicht auf Unterobjekte zu, Prozentsequenzen werden nicht vereinheitlicht. Doppelte Schlüssel sind Fehler und überschreiben einander nicht. Maps behalten die Reihenfolge aus dem eingegebenen JSON.
Keine nachträgliche URL-Korrektur
Einfache Expansion kodiert auch das Prozentzeichen; + und # erhalten gültige Prozentsequenzen und reservierte Zeichen. Leerzeichen in Literalen sind ungültig. Unicode wird ohne Normalisierung als UTF-8 kodiert; Protokoll, Basisadresse und Hostname werden nicht ergänzt oder umgewandelt.
Begrenzte Größe, keine Teilergebnisse
Die Grenzen sind 16.384, 65.536 und 262.144 UTF-16-Einheiten für Template, JSON und Ausgabe sowie 500 Ausdrücke. Der gemeinsame Parser begrenzt Tiefe auf 100, Knoten auf 50.000 und Zahlentoken auf 1.000 Zeichen. Bei Fehlern ist kein alter oder teilweise expandierter Export verfügbar.
Expansion ausschließlich vorwärts
Es gibt weder umgekehrten Routenabgleich noch Erreichbarkeitstest, Remote-Import, Standardwerte oder Skriptausführung. Die Operatoren definieren feste Trennzeichen. Besondere Kombinationen müssen als vorbereiteter Variablenwert übergeben werden.

Fragen zu URI-Template testen

Sollten geschweifte Klammern in URI-Templates prozentkodiert werden?

Die Klammern eines Ausdrucks bleiben unverändert: /users/{id} enthält eine Variable. /users/%7Bid%7D enthält dagegen kodierte Literale und wird nicht ersetzt. Nicht das ganze Template vorab URL-kodieren; der Operator übernimmt die Kodierung seiner Werte.

Wie unterscheidet sich der Operator / in RFC 6570 von anderen Präfixen?

/ fügt vor jeder definierten Variable einen Schrägstrich ein, bei einer explodierten Liste vor jedem Element. Einfache Expansion kodiert Schrägstriche innerhalb eines Wertes. + erhält sie, fügt aber selbst keinen hinzu. Die drei Varianten erfüllen unterschiedliche Aufgaben.

Kann RFC 6570 Leerzeichen als Trennzeichen für optionale Parameter verwenden?

Ein frei wählbares optionales Leerzeichen als Trennzeichen ist nicht vorgesehen. Bereiten Sie stattdessen eine Zeichenfolge mit den gewünschten Wörtern vor; deren Leerzeichen werden zu %20. * verwendet weiterhin das Trennzeichen seines Operators, etwa / oder &.

Lässt sich ein URI-Template nach RFC 6570 mit einem regulären Ausdruck prüfen?

Ein regulärer Ausdruck kann die Variablenwerte nicht ausreichend prüfen. {items:3} ist syntaktisch möglich, aber bei einer Liste als items unzulässig. Dieses Werkzeug prüft Ausdrücke und JSON-Werte gemeinsam und zeigt bei einem Fehler die betroffene Position.

Können URI-Templates URIs mit Routen abgleichen?

RFC 6570 beschreibt die Expansion von Variablen in eine URI. Die Umkehrung ist bei mehreren Variablen, reservierten Zeichen oder Maps möglicherweise mehrdeutig. Diese Seite extrahiert daher keine Routenparameter aus einer URI.

Stimmt etwas nicht?

Das eigene URI-Template testen

Ein Beispiel mit eigenen Werten vergleichen und den vollständigen Bericht des aktuellen Durchlaufs sichern.

Ein Template, ein Variablenobjekt, nachvollziehbare Teilresultate.