Aller au contenu principal
Développement

TypeScript : pourquoi une réponse API doit encore être validée

Les types décrivent le contrat attendu ; ils ne prouvent pas le contenu reçu. Placez une validation explicite à l’entrée de vos API.

Par L’équipe LitusPublié le 6 min de lecture
Espace de travail avec ordinateur et tablette graphique
Damian Patkowski damianpatkowski · CC0

Une application TypeScript peut compiler sans erreur puis tomber en panne lorsqu’une API renvoie une valeur inattendue. Le type déclaré décrit ce que le développeur attend ; il ne prouve pas que les données reçues respectent ce contrat. La frontière entre réseau et logique métier doit donc être contrôlée explicitement. Cette validation protège aussi contre des erreurs plus discrètes qu’un plantage : montant mal interprété, date invalide ou statut inconnu traité comme un succès.

Distinguer vérification du code et vérification des données

Le manuel TypeScript explique le rôle de la vérification statique et le fait que les annotations de type sont retirées lors de la production du JavaScript. Une assertion de type ne transforme donc pas une réponse réseau en objet valide. Elle informe le compilateur de l’hypothèse retenue, sans ajouter nécessairement un contrôle à l’exécution.

Imaginez une API de livraison dont votre code attend un délai numérique. Un changement chez le fournisseur introduit la chaîne « sur demande » pour certains produits. Le compilateur ne consulte pas les futures réponses du fournisseur. Si vous traitez la valeur comme un nombre sans la contrôler, le résultat peut devenir incohérent. Le problème se situe à l’entrée des données, même si ses effets apparaissent beaucoup plus loin dans l’interface.

Définir ce qui est inconnu à la frontière

Considérez la réponse externe comme inconnue tant qu’elle n’a pas été examinée. Vérifiez d’abord sa structure générale, puis les champs nécessaires à votre usage. Une réponse HTTP réussie peut contenir un corps vide, une erreur applicative ou un objet partiel. Séparez ces situations dans le contrat de votre adaptateur réseau pour que le reste de l’application ne les découvre pas au hasard.

Cette approche vaut pour les API, mais aussi pour les formulaires, fichiers importés, paramètres d’URL et messages reçus d’autres systèmes. La confiance ne doit pas dépendre uniquement de l’origine supposée. Un système interne peut changer de version ou transmettre un enregistrement ancien. La validation permet de reconnaître ce qui est utilisable et de décider comment traiter ce qui ne l’est pas.

Lieu de travail et son aménagement, photographie d’illustration
Lieu de travail et son aménagement, photographie d’illustration.TCY · CC BY-SA 4.0

Valider les règles utiles au métier

Un contrôle de type primitif est nécessaire mais parfois insuffisant. Un montant peut être numérique tout en ayant une unité incorrecte. Une date peut être une chaîne bien formée sans correspondre à une échéance acceptable. Définissez les propriétés nécessaires : format, plage, présence, unité et cohérence entre champs. Ne rendez pas obligatoire une donnée que votre fournisseur ne garantit pas simplement pour faciliter un composant.

Dans un exemple fictif, une application reçoit une quantité disponible et un statut de vente. Elle doit décider quoi faire si la quantité est absente, négative ou accompagnée d’un statut inconnu. Le bon comportement peut être de masquer la disponibilité et de proposer une vérification, plutôt que d’afficher zéro. Cette décision influence l’expérience client ; elle doit être discutée avec le métier et documentée dans la validation.

Éviter les conversions silencieuses

Convertir automatiquement toutes les chaînes en nombres peut faire disparaître des erreurs de source. Une chaîne vide peut devenir une valeur trompeuse selon l’opération utilisée. Définissez les conversions autorisées et conservez une trace des cas rejetés. Lorsque la source accepte plusieurs formats, traitez-les explicitement. Le lecteur du code doit comprendre pourquoi une conversion existe et quelles entrées elle refuse.

Créer un modèle interne stable

Après validation, transformez la réponse en un modèle adapté à votre application. Vous pouvez renommer les champs, normaliser une unité et représenter les absences de façon cohérente. Cette couche d’adaptation évite de répandre les particularités du fournisseur dans tous les composants. Si son format change, le travail se concentre sur une frontière identifiable au lieu de nécessiter une recherche dans toute l’interface.

Ne conservez pas inutilement l’intégralité du corps externe dans les données utilisées par l’application. Sélectionnez ce qui est nécessaire et limitez ce qui apparaît dans les logs. Une erreur de validation peut indiquer le champ et la règle concernés sans recopier un dossier client entier. Le diagnostic reste utile tout en réduisant l’exposition de données qui n’aident pas à résoudre le problème.

Représenter clairement succès et échec

Le guide TypeScript sur le rétrécissement des types décrit notamment les unions discriminées. Elles permettent de distinguer plusieurs formes de résultat par une propriété commune. Une application peut ainsi représenter un succès, une donnée absente ou une erreur de validation avec des informations propres à chaque cas, au lieu d’un objet rempli de propriétés optionnelles ambiguës.

Ce modèle aide l’interface à proposer une réponse adaptée. Une absence de résultat peut afficher un état vide ; une panne réseau peut inviter à réessayer ; une réponse invalide peut déclencher une alerte technique. Ne présentez pas toutes ces situations comme « aucun élément trouvé ». L’utilisateur risquerait de croire que ses données n’existent plus alors que le système n’a simplement pas réussi à les lire.

Lieu de travail et son aménagement, photographie d’illustration
Lieu de travail et son aménagement, photographie d’illustration.מקף־עברי · CC0

Tester les variations plausibles de la réponse

Préparez des exemples de réponse valide, champ absent, valeur nulle, mauvais type, statut inconnu et tableau vide. Ajoutez une propriété supplémentaire pour vérifier la politique retenue face aux évolutions compatibles. Le contrat peut autoriser des champs inconnus tout en exigeant ceux nécessaires à l’application. Refuser toute nouveauté n’est pas toujours souhaitable ; accepter toute absence ne l’est pas davantage.

Les tests doivent vérifier le résultat métier ou l’erreur produite, et pas seulement appeler le validateur sans assertion précise. Conservez des exemples anonymisés issus des incidents réels quand cela est possible. Ils rendent les régressions reproductibles. Si vous utilisez une bibliothèque de validation, vérifiez sa configuration dans votre version et évitez de supposer que son comportement par défaut correspond à vos règles.

Faire évoluer le contrat sans rupture aveugle

Attribuez un propriétaire à chaque contrat externe et indiquez les usages qui en dépendent. Lorsqu’une erreur apparaît, cette personne peut décider si le nouveau format est acceptable ou si le fournisseur doit corriger sa réponse. La décision ne doit pas se limiter à ajouter une assertion pour faire disparaître une erreur du compilateur : elle doit préserver le sens des données utilisées.

Lorsqu’un fournisseur annonce un changement, comparez son nouveau format aux champs réellement utilisés. Préparez la compatibilité nécessaire, déployez les contrôles puis suivez les rejets. Une validation utile rend les écarts visibles assez tôt pour agir. Elle ne doit pas devenir une boîte noire qui renvoie simplement une erreur générale sans possibilité de comprendre le changement rencontré.

Notre expertise TypeScript aide à clarifier les contrats de données et à fiabiliser les évolutions. Pour examiner une intégration, apportez la forme attendue d’une réponse, un exemple anonymisé et les comportements souhaités en cas d’écart. Nous pourrons placer les contrôles à la bonne frontière et simplifier le modèle utilisé par votre application.

Pour approfondir : Python : contrôler un CSV avant de l’importer dans un outil métier.

Pour approfondir : React : concevoir les états d’un formulaire qui ne perd pas la saisie.

Google

Avis clients

5/5+21 avis Google
Léandre. dpsil y a 4 mois
Avis publié sur Google

Note attribuée sans commentaire.

Visité en avril
SARL PEAN Jil y a 5 mois
Avis publié sur Google

Excellent. Grâce à Litus, ma communication internet est devenue vraiment professionnelle.

Visité en mars
Ornel Afonsoil y a 9 mois
Avis publié sur Google

Excellente expérience avec Arthur et son équipe ! Ils sont professionnels, à l’écoute et ont su créer un site web vivant, clair et efficace. Je recommande vivement pour tout projet web ou SEO.

Visité en novembre 2025
Julie Langlaisil y a un an
Avis publié sur Google

Professionnel à l’écoute qui est très réactif. Fourni un travail rapide et sérieux. Merci.

Visité en septembre 2025
Sylvain Chamouxil y a un an
Avis publié sur Google

Un résultat vraiment top ! Mon site est incroyable, exactement comme je l’imaginais. Arthur et son associé ont été très disponibles, à l’écoute et professionnels tout au long du projet. Je recommande vivement !

Visité en septembre 2025
Sylvie Bouvieril y a un an
Avis publié sur Google

Je recommande vivement Arthur ! Très impliqué, toujours à l’écoute, il fait preuve d’une grande créativité, d’idées et d’un vrai sens pédagogique.

Visité en juillet 2025
Véronique Guillemotil y a un an
Avis publié sur Google

J’ai connu Aksel de Litus par recommandation et je lui ai demandé de créer mon site internet de soins énergétiques. Un accompagnement attentif et professionnel.

Visité en juin 2025
Julien Hamonil y a un an
Avis publié sur Google

Je recommande vivement l’agence Litus pour la création de sites. Leur équipe est professionnelle, réactive et à l’écoute de mes besoins.

Visité en février 2025
Alexandre Fletcheril y a un an
Avis publié sur Google

Litus m’a accompagné avec efficacité et professionnalisme dans la mise en place d’un blog pour mon agence immobilière. Son équipe est très disponible et réactive. Entièrement satisfait, je recommande sans hésitation cette agence web.

Visité en mai 2025
Camille Bennadjiil y a un an
Avis publié sur Google

Note attribuée sans commentaire.

Visité en mars 2025
Amelie Van-Landschootil y a un an
Avis publié sur Google

Note attribuée sans commentaire.

Visité en mars 2025
Emma Stj22il y a un an
Avis publié sur Google

Note attribuée sans commentaire.

Visité en mars 2025
Kim Buquenil y a un an
Avis publié sur Google

Note attribuée sans commentaire.

Visité en février 2025
Hishem Belhajil y a un an
Avis publié sur Google

Litus m’a accompagné dès le lancement de mon entreprise et cela a été un vrai plus. Leur équipe est réactive, à l’écoute et m’a aidé à avoir un site professionnel.

Visité en août 2024
Pezzino Matysil y a un an
Avis publié sur Google

Merci à Litus pour la création de notre site e-commerce B2B. L’équipe a été très professionnelle, avec un site bien pensé et un référencement qui porte ses fruits.

Visité en février 2025
Lucas Robertil y a un an
Avis publié sur Google

Arthur et Aksel ont su être très professionnels et m’accompagnent encore aujourd’hui ! Merci pour votre expertise.

Visité en juin 2024
Yanisil y a un an
Avis publié sur Google

Client depuis plus d’un an, super satisfait ! Litus est professionnel, réactif et toujours disponible. Merci pour votre excellent travail.

Visité en janvier 2025
Romain Brantil y a un an
Avis publié sur Google

Collaboration avec l’équipe Litus depuis plus d’un an. Merci pour ce professionnalisme et votre disponibilité. Une équipe fiable sur qui on peut compter pour travailler sérieusement.

Visité en décembre 2024
N Sil y a un an
Avis publié sur Google

Merci à Arthur et à toute l’équipe Litus pour la création de mon site web. Un suivi régulier et un professionnalisme à toute épreuve. Des experts à qui on peut faire confiance les yeux fermés !

Visité en décembre 2024
Marius Le Nédicil y a un an
Avis publié sur Google

Nous tenons à remercier chaleureusement l’équipe de Litus pour la création de notre site web. Leur professionnalisme et leur expertise ont permis de concevoir un site responsive et parfaitement adapté à nos besoins.

Visité en décembre 2024
Pierre-Louis Gaboriauil y a 2 ans
Avis publié sur Google

Création de mon site et suivi régulier de la part de Litus pour la réalisation West Clôtures.

Voir tous nos avis sur Google