En bref : REST est un style architectural défini par des contraintes régissant les interactions entre les composants. Utilisez ses six contraintes pour évaluer l’indépendance vis-à-vis du client, le contexte de la requête, la mise en cache, l’uniformité des interfaces, les couches et le code téléchargeable en option ; une réponse JSON à elle seule ne prouve aucune d’entre elles.
Un point de terminaison qui renvoie une commande au format JSON peut tout de même contraindre chaque client à comprendre le workflow interne du serveur. Les contraintes architecturales d’une API REST sont les règles qui déterminent si ces interactions respectent le principe du « Representational State Transfer » (REST), plutôt que de se contenter d’utiliser le protocole HTTP. Elles portent sur ce que les participants doivent savoir les uns des autres, la manière dont ils échangent des représentations et leur degré d’autonomie en matière de modification.
Prenons l’exemple d’un collecteur consultant un catalogue de produits. Il doit récupérer des enregistrements, découvrir une autre page, reconnaître un résultat inchangé et reprendre le traitement après l’échec d’un worker. Ces exigences mettent immédiatement en évidence les choix architecturaux. La requête suivante contient-elle son propre contexte ? Le serveur peut-il annoncer la page suivante ? Une réponse enregistrée est-elle réutilisable ? Le worker de remplacement doit-il récupérer une conversation invisible avant de continuer ?
Ce guide utilise ces questions comme base d’une revue de conception. Les exemples décrivent un service de catalogue hypothétique, et non l’API exécutable d’un fournisseur. Ils montrent comment analyser le comportement sans réduire REST à une liste de noms de points de terminaison ou de verbes HTTP. Vous pouvez appliquer cette même analyse à une API que vous publiez, à une intégration que vous gérez ou à un pipeline de collecte de données qui utilise le service d’un tiers.




