Nous avons un projet où le code UI sera développé par la même équipe mais dans un langage différent (Python / Django) de la couche services (REST / Java). Le code de chaque couche se termine dans différents référentiels de code et qui peuvent suivre différents cycles de publication. J'essaie de trouver un processus qui empêchera / réduira les changements de rupture dans la couche services du point de vue de la couche d'interface utilisateur.
J'ai pensé à écrire des tests d'intégration au niveau de la couche d'interface utilisateur que nous exécuterons chaque fois que nous construisons l'interface utilisateur ou la couche de services (nous utilisons Jenkins comme notre outil CI pour construire le code qui est dans deux dépôts Git) et si il y a des échecs, puis quelque chose dans la couche services s'est cassé et la validation n'est pas acceptée.
Serait-ce également une bonne idée (est-ce une meilleure pratique?) Que le développeur de la couche de services crée et gère une bibliothèque cliente pour le service REST qui existe dans la couche d'interface utilisateur qu'il mettra à jour chaque fois qu'il y aura un changement de rupture leur API de service? En théorie, nous aurions alors l'avantage d'une API de type statique sur laquelle le code de l'interface utilisateur s'appuie. Si l'API de la bibliothèque client change, le code de l'interface utilisateur ne se compilera pas (nous saurons donc plus tôt qu'il y a eu un changement de rupture). J'exécuterais également les tests d'intégration lors de la création de l'interface utilisateur ou de la couche services pour valider davantage que l'intégration entre l'interface utilisateur et le (s) service (s) fonctionne toujours.