ForHosting KIT · Veille et lecture de sites web

Détecter le schéma de versionnement d'API via l'URL

Une adresse dont le chemin commence par v1 suit un versionnement par chemin, version 1, repérée en /v1. Collez une adresse pour savoir si la version figure dans le chemin, après le point d'interrogation ou seulement dans un en-tête, utile pour passerelles et documentation. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Adresse web
https://api.example.com/v1/users
Vous obtenez
Schéma
path_based
Version
1
Version brute
v1
Emplacement
/v1

Lorsqu'une version apparaît dans le chemin ou la requête, elle est extraite et renvoyée avec le jeton brut et l'emplacement qui a correspondu.

Trois endroits où un service web place sa version

Les services web annoncent leur version de plusieurs façons. La plus courante est un segment du chemin, comme v2 entre deux barres obliques, directement dans l'adresse. Une autre est une clé après le point d'interrogation qui porte le numéro, par exemple une version de valeur 2. La troisième laisse l'adresse nue et attend la version à part, dans un en-tête. Collez une adresse complète : le détecteur indique lequel des trois styles elle utilise et, si une version est visible, laquelle et où elle a été trouvée. Une adresse dont le chemin commence par v1, suivi de users, est classée en versionnement par chemin, version 1, avec le texte brut v1 et l'emplacement /v1.

Ce que le détecteur vérifie et ce qu'il ne fait jamais

Seules les adresses entières commençant par http ou https sont acceptées ; le reste est refusé plutôt que deviné. Les clés après le point d'interrogation sont comparées sans tenir compte des majuscules, et la première d'une liste fixe de priorité qui a une valeur l'emporte, si bien que l'ordre des éléments ne change pas la réponse. Une version écrite v2 est normalisée en 2, tandis que 1.0.0 reste identique et que des mots comme beta ou une date comme 2024-01-01 sont conservés tels quels. Le détecteur ne se connecte jamais au service et n'invente aucune version à partir du seul nom du serveur : la même adresse donne toujours la même réponse.

Comment distinguer les schémas par chemin, requête et en-tête implicite

Il reconnaît aussi la forme à deux segments version/1 ou versions/2.0 afin que les routes de type documentation restent bien classées. Les clés sont comparées sans distinction de casse ; la première de cette liste de priorité fixe ayant une valeur non vide l'emporte, de sorte que le résultat reste stable quel que soit l'ordre des paramètres dans l'URL d'origine. Les valeurs peuvent ressembler à 2, v2 ou 1.0.0 ; un v initial est retiré du champ version normalisé lorsque le jeton est purement numérique avec des points optionnels.

Les jetons alphanumériques libres comme beta ou 2024-01-01 sont conservés tels quels s'ils correspondent à un motif d'identifiant sûr. Le détecteur n'effectue jamais d'E/S réseau et n'invente jamais une version à partir du seul nom d'hôte.

Qu'est-ce qui compte comme versionnement par chemin ?

Un segment de chemin correspondant à v plus une version numérique (v1, v2.0) ou la forme version/1 ou versions/2.0.

Que signifie l'absence de version dans l'adresse ?

Le résultat indique un versionnement par en-tête : ni le chemin ni la partie après le point d'interrogation ne portent de marque de version. Ces services attendent souvent la version dans un en-tête, ou ne la placent pas dans l'adresse.

L'ordre des éléments après le point d'interrogation compte-t-il ?

Non. Les clés sont comparées sans tenir compte des majuscules et la première d'une liste fixe de priorité qui a une valeur l'emporte : la même adresse donne la même réponse dans n'importe quel ordre.

Que deviennent les versions écrites v2 ou 1.0.0 ?

Le v initial est retiré quand le reste ne contient que des chiffres et des points : v2 devient 2 et 1.0.0 reste identique. Des mots comme beta ou une date comme 2024-01-01 sont conservés tels quels.

L'outil visite-t-il l'adresse que je colle ?

Non. Il lit seulement le texte de l'adresse et ne se connecte jamais au service. Il ne déduit pas non plus de version à partir du seul nom du serveur : une adresse sans marque est signalée comme telle.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/dev/api-versioning-scheme-detect

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

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"}'
{
  "url": "https://api.example.com/v1/users"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.api_versioning_scheme_detect",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Les API HTTP publiques annoncent leur style de versionnement à des endroits différents : un segment de chemin comme /v2/, une chaîne de requête comme ? api_version=2, ou nulle part dans l'URL lorsque les clients doivent envoyer Accept ou des en-têtes personnalisés. Intégrations, passerelles, générateurs de SDK et crawlers de documentation ont besoin d'une réponse déterministe unique sur le schéma qu'utilise un endpoint et le jeton de version qu'il porte. Cette capacité accepte une URL d'API absolue, rejette les chaînes qui ne sont pas des URL http ou https bien formées, et classe le schéma en path_based, query_param ou header_implied. Si ni le chemin ni la requête ne contiennent de marqueur conventionnel, le résultat est header_implied avec has_version false, indiquant que le versionnement est hors bande par rapport à l'URL.

Comment distinguer les schémas par chemin, requête et en-tête implicite

Le versionnement par chemin est la convention REST dominante : un segment comme v1, v2 ou v1.2.3 apparaît dans le pathname, souvent sous /api/ ou comme premier segment significatif après l'hôte. Ce détecteur parcourt les segments de gauche à droite et traite une correspondance, sans distinction de casse, de v suivie d'une version numérique comme path_based, en renvoyant la partie numérique comme version et le segment d'origine comme version_raw avec location pointant vers ce segment (par exemple /v2). Le versionnement par paramètre de requête place le jeton dans la chaîne de recherche sous des clés courantes : version, api_version, api-version, apiversion, ver et v. Lorsque chemin et requête correspondraient tous deux, path_based a la priorité car la documentation REST publique traite presque toujours le segment de chemin comme contrat principal et la requête comme surcharge secondaire. Si aucune source ne fournit de version, le schéma est header_implied : l'URL seule n'encode pas de version, ce qui dans les API modernes signifie souvent Accept: application/vnd.example.v1+json, un en-tête X-API-Version personnalisé ou une surface non versionnée.

Contrat d'entrée, charge utile de succès et erreurs de validation

Exemple : https://api.example.com/users? Envoyez en POST un corps JSON avec un unique champ chaîne obligatoire nommé url. La valeur doit être une URL absolue bien formée avec le schéma http ou https ; les chemins relatifs, les noms d'hôte sans schéma, les chaînes vides, les types non chaîne et d'autres protocoles comme ftp ou mailto échouent avec invalid_input et ne sont pas facturés. En cas de succès, la réponse inclut toujours l'url renvoyée en écho, scheme (path_based, query_param ou header_implied), has_version (booléen), path (pathname) et host. Lorsque has_version vaut true, la charge inclut aussi version (jeton normalisé), version_raw (tel que trouvé dans l'URL) et location (un pointeur court comme /v2 ou ? api_version=2). Pour les résultats query_param, param_name enregistre l'orthographe d'origine de la clé dans l'URL. Les champs optionnels sont omis plutôt que mis à null lorsque has_version est false, ce qui garde le contrat sûr pour le DOM et simple à afficher. Exemple : https://api.example.com/v2/users donne scheme path_based, version 2 et location /v2. api_version=2 donne scheme query_param, version 2 et param_name api_version. Exemple : https://api.example.com/users sans marqueurs de version donne scheme header_implied et has_version false. Utilisez l'outil gratuit du navigateur pour une inspection ponctuelle, ou l'API à $0.002 par élément réussi lorsque vous classifiez des endpoints en masse depuis un inventaire ou un crawl OpenAPI.

Où la détection du versionnement d'URL apporte de la valeur

Les équipes plateforme inventorient des centaines d'URL de base internes et partenaires et ont besoin d'une étiquette cohérente avant d'acheminer le trafic via une passerelle qui impose des fenêtres de dépréciation. Une validation échouée ne consomme pas le solde. Les générateurs de SDK et les outils d'échafaudage client branchent des modèles selon que le serveur attend /vN/ dans le chemin, un indicateur de requête ou un versionnement uniquement par en-tête ; un classifieur pur évite les expressions rationnelles fragiles dispersées dans les dépôts. Les sites de documentation et les places de marché d'API affichent des badges de style de versionnement à côté de chaque fiche ; les alimenter avec ce point de terminaison aligne le texte marketing sur la forme réelle de l'URL. Les revues de sécurité et de conformité demandent souvent si les hôtes de production exposent encore des chemins non versionnés ou des schémas mixtes qui compliquent le déploiement de changements incompatibles ; exporter scheme et has_version vers un tableur répond en un seul passage. Les tâches CI peuvent faire échouer une demande de fusion lorsqu'une URL de base de service nouvellement ajoutée passe silencieusement de path_based à header_implied sans ADR. Comme l'implémentation est purement parse de niveau A, chaque appel réussi coûte le prix de base publié $0.002, sans jetons de modèle ni récupération du hôte cible.

Inventaire d'API et routage de passerelle

Classez les URL de base d'un catalogue de services en path_based, query_param ou header_implied avant d'appliquer politiques de dépréciation et règles de routage.

Échafaudage de SDK et de clients

Choisissez le bon modèle d'URL lors de la génération de SDK : injectez /vN/, ajoutez ?version= ou documentez les en-têtes Accept requis lorsque l'URL ne porte pas de version.

Badges de documentation et audits de conformité

Étiquetez les annonces d'API publiques avec leur style de versionnement et signalez les hôtes de production non versionnés lors des revues de sécurité ou d'architecture.

Comment détecter le schéma de versionnement d'une API à partir d'une URL ?

Envoyez une URL http(s) absolue bien formée dans le champ url. Le scheme de la réponse est path_based, query_param ou header_implied, avec version extraite lorsqu'elle figure dans le chemin ou la chaîne de requête.

Quels paramètres de requête sont reconnus ?

version, api_version, api-version, apiversion, ver et v, sans distinction de casse et dans cet ordre de priorité. La première valeur non vide produit scheme query_param.

Que signifie header_implied ?

Ni le chemin ni la chaîne de requête ne portent de marqueur de version conventionnel. Le versionnement est transmis par en-têtes (Accept, X-API-Version) ou l'API n'est pas versionnée dans l'URL.

Combien coûte la détection du schéma de versionnement d'une API ?

L'outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; les URL invalides ou mal formées ne sont pas facturées.

Consulter la documentation complète du KIT →