WindevExpert

Vidéo 38 • Évolution du Service

API Versioning :
L'Art de ne rien casser

Apprenez à faire évoluer votre Cloud sans déconnecter les clients qui utilisent encore vos anciennes versions.

Le Drame de la "Breaking Change"

Mise à jour sans Versioning

Vous décidez de renommer le champ ID_CLIENT en UUID_CUSTOMER pour faire plus "pro".

Le serveur attend le nouveau nom, mais 500 caisses locales envoient encore l'ancien.

RÉSULTAT : 500 erreurs 400 (Bad Request). Parc paralysé.

La Cohabitation Pacifique

"En SaaS, on ne supprime jamais une route API. On la déprécie et on maintient un traducteur tant que le dernier client ne l'a pas quittée."

Laboratoire : Le Dispatcher intelligent

Requêtes Entrantes

Dispatcher de flux
Legacy Parser Procedure_v1()
Modern Parser Procedure_v2()
> Cloud Gateway active...

Les 2 méthodes de Versioning

1. Versioning par URL (URI)

https://api.monsaas.com/v1/sync
https://api.monsaas.com/v2/sync

"Simple à router, mais pollue les URLs de votre application."

2. Versioning par Header (Pro)

Headers HTTP :
X-API-VERSION : 2.1.0

"Méthode la plus propre. Permet de changer de version sans changer de code d'appel."

Code Serveur : Le Filtre de Version

// 1. On récupère la version demandée par le client dans les Headers
sMaVersionRecue est une chaîne = HTTPDonneEntête("X-API-VERSION")

SELON sMaVersionRecue
    CAS "1.0"
        // On redirige vers l'ancienne logique de traitement
        Traitement_V1()
        
    CAS "2.0", "2.1"
        // On utilise la logique moderne (nouveau schéma JSON)
        Traitement_V2()
        
    AUTRE CAS
        // Version inconnue ou trop vieille
        HTTPRéponse(426) // "Upgrade Required"
FIN