Vérifiez d'abord si ça doit vraiment casser : ajouter des champs et accepter des paramètres optionnels reste rétrocompatible si les clients ignorent les champs inconnus. Si ça casse réellement, versionnez explicitement, en général un préfixe de chemin pour les versions majeures, faites tourner les deux versions côte à côte sur un seul modèle interne, publiez un calendrier de dépréciation avec des en-têtes et des métriques par version, et ne supprimez l'ancienne que lorsque son trafic est pratiquement nul.
Pourquoi les recruteurs posent cette question
C'est une question de jugement sur la rétrocompatibilité et la discipline opérationnelle. Le recruteur veut entendre que vous évitez les changements cassants quand c'est possible, que vous savez nommer ce qui compte comme cassant, et que vous avez réellement retiré un endpoint, ce qui suppose de savoir qui l'appelle. Les réponses qui s'arrêtent à mettre v2 dans l'URL ratent la partie difficile, à savoir la migration et la suppression.
Comment structurer votre réponse
- Distinguez les changements additifs des changements réellement cassants.
- Choisissez un mécanisme de versionnage et justifiez-le brièvement.
- Décrivez comment les deux versions coexistent sans dupliquer la logique.
- Détaillez le processus de dépréciation et de suppression, chiffres à l'appui.
Exemple de réponse
Mon premier réflexe est de vérifier si ça doit casser. Ajouter un champ, ajouter un paramètre optionnel, ajouter une valeur d'énumération si les clients tolèrent l'inconnu, tout ça part sans changement de version. Casser, c'est supprimer ou renommer un champ, durcir une validation, ou changer le sens d'une valeur existante. Quand c'est vraiment cassant, j'utilise une version majeure dans le chemin, parce que c'est visible dans les logs et facile à raisonner pour les clients, et je garde l'ancienne version comme une fine couche de traduction au-dessus du même modèle interne, pour ne pas maintenir deux implémentations. Ensuite la partie qui prend vraiment du temps : instrumenter les requêtes par version et par client, publier une date de fin de vie dans un en-tête de réponse et dans la documentation, et contacter directement les plus gros appelants. Sur la dernière que j'ai menée, le trafic v1 était tombé à une poignée de requêtes par jour venant de deux intégrations, on les a contactées, et il était sûr de supprimer trois mois plus tard. Sans métriques par client, vous ne supprimez jamais rien.
Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.
Voir comment ça marcheQuestions de relance à prévoir
- Quels changements considérez-vous comme sûrs sans changer de version ?
- Comment versionnez-vous des événements ou des messages plutôt que du HTTP ?
- Que faites-vous d'un gros client qui refuse de migrer ?
Autres questions pour Développeur backend
Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.
Prédire mes questions