API-Versionierungsschema aus der URL erkennen
Eine Adresse, deren Pfad mit v1 beginnt, nutzt pfadbasierte Versionierung, Version 1, gefunden bei /v1. Fügen Sie eine Adresse ein und sehen Sie, ob die Version im Pfad, nach dem Fragezeichen oder nur im Header steckt, nützlich für Gateways und Dokumentation. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Webadresse
- https://api.example.com/v1/users
- Schema
- path_based
- Version
- 1
- Rohversion
- v1
- Ort
- /v1
Erscheint eine Version im Pfad oder in der Query, wird sie extrahiert und zusammen mit dem Roh-Token und der treffenden Stelle zurückgegeben.
Drei Orte, an denen ein Webdienst seine Version ablegt
Webdienste geben ihre Version auf unterschiedliche Weise an. Am häufigsten ist ein Pfadabschnitt wie v2 zwischen zwei Schrägstrichen, direkt in der Adresse. Eine andere Möglichkeit ist ein Schlüssel nach dem Fragezeichen, der die Nummer trägt, etwa eine Version mit dem Wert 2. Die dritte lässt die Adresse frei und erwartet die Version getrennt in einem Header. Fügen Sie eine vollständige Adresse ein, und der Detektor nennt den Stil und, falls eine Version sichtbar ist, welche es ist und wo sie stand. Eine Adresse, deren Pfad mit v1 und danach users beginnt, gilt als pfadbasiert, Version 1, mit dem Rohtext v1 und der Fundstelle /v1.
Was der Detektor prüft und was er nie tut
Angenommen werden nur vollständige Adressen, die mit http oder https beginnen; alles andere wird abgelehnt statt erraten. Schlüssel nach dem Fragezeichen werden ohne Rücksicht auf Groß- und Kleinschreibung verglichen, und der erste Schlüssel einer festen Prioritätsliste mit Wert gewinnt, sodass die Reihenfolge nichts ändert. Eine Version wie v2 wird zu 2, während 1.0.0 gleich bleibt und Wörter wie beta oder ein Datum wie 2024-01-01 unverändert bleiben. Der Detektor verbindet sich nie mit dem Dienst und erfindet keine Version aus dem Hostnamen, daher liefert dieselbe Adresse immer dieselbe Antwort.
Wie pfadbasierte, Query- und headerimplizite Schemata unterschieden werden
Erkennung gilt auch für die Zweisegmentform version/1 oder versions/2.0, damit dokumentationsartige Routen korrekt klassifiziert werden. Schlüssel werden ohne Berücksichtigung der Großschreibung verglichen; der erste Schlüssel der festen Prioritätsliste mit nicht leerem Wert gewinnt, sodass das Ergebnis unabhängig von der Parameterreihenfolge in der Original-URL stabil bleibt. Werte können 2, v2 oder 1.0.0 heißen; ein führendes v wird im normalisierten version-Feld entfernt, wenn das Token rein numerisch mit optionalen Punkten ist.
Freiform-alphanumerische Token wie beta oder 2024-01-01 bleiben unverändert, wenn sie einem sicheren Identifikatormuster entsprechen. Der Detektor führt keine Netzwerk-E/A aus und erfindet nie eine Version allein aus Hostnamen.
Häufige Fragen
Was zählt als pfadbasierte Versionierung?
Ein Pfadsegment, das v plus eine numerische Version (v1, v2.0) oder die Form version/1 bzw. versions/2.0 trifft.
Was bedeutet es, wenn in der Adresse keine Version gefunden wird?
Dann lautet das Ergebnis Versionierung per Header: Weder der Pfad noch der Teil nach dem Fragezeichen enthält eine Versionsmarke. Solche Dienste erwarten die Version meist in einem Header oder führen sie gar nicht in der Adresse.
Spielt die Reihenfolge der Angaben nach dem Fragezeichen eine Rolle?
Nein. Schlüssel werden ohne Rücksicht auf Groß- und Kleinschreibung verglichen, und es gewinnt der erste Schlüssel einer festen Prioritätsliste mit Wert. Dieselbe Adresse liefert daher in jeder Reihenfolge dieselbe Antwort.
Was passiert mit Versionen wie v2 oder 1.0.0?
Ein führendes v fällt weg, wenn der Rest nur aus Ziffern und Punkten besteht, aus v2 wird also 2, und 1.0.0 bleibt gleich. Wörter wie beta oder ein Datum wie 2024-01-01 bleiben unverändert.
Ruft das Werkzeug die eingefügte Adresse auf?
Nein. Es liest nur den Text der Adresse und verbindet sich nie mit dem Dienst. Es leitet auch keine Version allein aus dem Hostnamen ab, eine Adresse ohne Marke wird also genau so gemeldet.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/dev/api-versioning-scheme-detect \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://api.example.com/v1/users"}'const res = await fetch("https://api.kit.forhosting.com/dev/api-versioning-scheme-detect", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://api.example.com/v1/users"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/api-versioning-scheme-detect",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://api.example.com/v1/users"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/api-versioning-scheme-detect", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://api.example.com/v1/users"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://api.example.com/v1/users"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/api-versioning-scheme-detect", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"url": "https://api.example.com/v1/users"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.api_versioning_scheme_detect",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Öffentliche HTTP-APIs kündigen ihren Versionierungsstil an unterschiedlichen Stellen an: als Pfadsegment wie /v2/, als Query-String wie ? api_version=2 oder gar nicht in der URL, wenn Clients Accept oder benutzerdefinierte Header senden sollen. Integrationen, Gateways, SDK-Generatoren und Dokumentations-Crawler brauchen eine einzige deterministische Antwort darauf, welches Schema eine Endpoint-URL verwendet und welches Versionstoken sie trägt. Diese Fähigkeit akzeptiert eine absolute API-URL, lehnt Zeichenketten ab, die keine wohlgeformten http- oder https-URLs sind, und klassifiziert das Schema als path_based, query_param oder header_implied. Enthalten weder Pfad noch Query einen konventionellen Versionsmarker, ist das Ergebnis header_implied mit has_version false und signalisiert, dass die Versionierung relativ zur URL außerhalb des Bandes liegt.
Wie pfadbasierte, Query- und headerimplizite Schemata unterschieden werden
Pfadbasierte Versionierung ist die vorherrschende REST-Konvention: Ein Segment wie v1, v2 oder v1.2.3 erscheint im pathname, oft unter /api/ oder als erstes sinnvolles Segment nach dem Host. Dieser Detektor durchläuft Pfadsegmente von links nach rechts und behandelt eine groß-/kleinschreibungsunabhängige Übereinstimmung von v gefolgt von einer numerischen Version als path_based; er liefert den numerischen Teil als version und das Originalsegment als version_raw mit location auf diesem Segment (zum Beispiel /v2). Query-Parameter-Versionierung legt das Token im Suchstring unter gängigen Schlüsseln ab: version, api_version, api-version, apiversion, ver und v. Würden Pfad und Query treffend sein, hat path_based Vorrang, weil öffentliche REST-Dokumentation das Pfadsegment fast immer als Primärvertrag und die Query als sekundäre Überschreibung behandelt. Liefert keine Quelle eine Version, ist das Schema header_implied: Die URL allein kodiert keine Version, was bei modernen APIs meist Accept: application/vnd.example.v1+json, einen benutzerdefinierten X-API-Version-Header oder eine unversionierte Oberfläche bedeutet.
Eingabevertrag, Erfolgsnutzlast und Validierungsfehler
Beispiel: https://api.example.com/users? Senden Sie per POST einen JSON-Body mit einem einzigen Pflicht-Stringfeld namens url. Der Wert muss eine wohlgeformte absolute URL mit Schema http oder https sein; relative Pfade, Hostnamen ohne Schema, leere Zeichenketten, Nicht-String-Typen und andere Protokolle wie ftp oder mailto scheitern mit invalid_input und werden nicht berechnet. Bei Erfolg enthält die Antwort immer die zurückgegebene url, scheme (path_based, query_param oder header_implied), has_version (boolesch), path (pathname) und host. Ist has_version true, enthält die Nutzlast auch version (normalisiertes Token), version_raw (wie in der URL gefunden) und location (ein kurzer Zeiger wie /v2 oder ? api_version=2). Bei query_param-Ergebnissen speichert param_name die Originalschreibweise des Schlüssels in der URL. Optionale Felder werden weggelassen statt auf null gesetzt, wenn has_version false ist, damit der Vertrag DOM-sicher und leicht zu rendern bleibt. Beispiel: https://api.example.com/v2/users ergibt scheme path_based, version 2 und location /v2. api_version=2 ergibt scheme query_param, version 2 und param_name api_version. Beispiel: https://api.example.com/users ohne Versionsmarker ergibt scheme header_implied und has_version false. Nutzen Sie das kostenlose Browser-Werkzeug für Einzelprüfungen oder die API zu $0.002 pro erfolgreichem Element, wenn Sie Endpoints aus einem Inventar oder OpenAPI-Crawl massenhaft klassifizieren.
Wo die Erkennung der URL-Versionierung ihren Nutzen zeigt
Plattformteams inventarisieren Hunderte interner und Partner-Basis-URLs und brauchen ein einheitliches Label, bevor Verkehr über ein Gateway mit Deprecationsfenstern geroutet wird. Fehlgeschlagene Validierung wird nicht berechnet. SDK-Generatoren und Client-Scaffolding-Werkzeuge verzweigen Vorlagen danach, ob der Server /vN/ im Pfad, ein Query-Flag oder nur Header-Versionierung erwartet; ein reiner Klassifikator vermeidet brüchige Ad-hoc-Regexe quer durch Repositories. Dokumentationsseiten und API-Marktplätze zeigen Badges zum Versionierungsstil neben jedem Eintrag; die Speisung mit diesem Endpoint hält Marketingtext und live URL-Form im Einklang. Sicherheits- und Compliance-Reviews fragen oft, ob Produktionshosts noch unversionierte Pfade oder gemischte Schemata freigeben, die Rollouts brechender Änderungen erschweren; der Export von scheme und has_version in eine Tabelle beantwortet das in einem Durchgang. CI-Jobs können einen Pull Request ablehnen, wenn eine neu hinzugefügte Service-Basis-URL still von path_based auf header_implied wechselt, ohne ADR. Weil die Implementierung reines Parse der Stufe A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Basispreis $0.002, ohne Modell-Token und ohne Abruf des Zielhosts.
Integrationsbeispiele
API-Inventar und Gateway-Routing
Klassifizieren Sie Basis-URLs in einem Servicekatalog als path_based, query_param oder header_implied, bevor Deprecationsrichtlinien und Routingregeln greifen.
SDK- und Client-Scaffolding
Wählen Sie beim Generieren von SDKs die richtige URL-Vorlage: /vN/ einfügen, ?version= anhängen oder erforderliche Accept-Header dokumentieren, wenn die URL keine Version trägt.
Dokumentations-Badges und Compliance-Audits
Kennzeichnen Sie öffentliche API-Einträge mit ihrem Versionierungsstil und markieren Sie unversionierte Produktionshosts in Sicherheits- oder Architekturprüfungen.
Technische Fragen
Wie erkenne ich das API-Versionierungsschema einer URL?
Senden Sie eine wohlgeformte absolute http(s)-URL im Feld url. Das scheme der Antwort ist path_based, query_param oder header_implied; version wird extrahiert, wenn sie im Pfad oder Query-String vorkommt.
Welche Query-Parameter werden erkannt?
version, api_version, api-version, apiversion, ver und v, groß-/kleinschreibungsunabhängig und in dieser Prioritätsreihenfolge. Der erste nicht leere Wert ergibt scheme query_param.
Was bedeutet header_implied?
Weder Pfad noch Query-String tragen einen konventionellen Versionsmarker. Die Versionierung läuft über Header (Accept, X-API-Version) oder die API ist in der URL unversioniert.
Was kostet die Erkennung des API-Versionierungsschemas?
Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen das vorausbezahlte KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige oder nicht wohlgeformte URLs werden nicht berechnet.