Généralités
Le client souhaitait exposer au grand public les services de sa nouvelle plateforme d'agrégation
de
moyens de paiement mobiles.
Ces services offraient notamment le moyen de rassembler en un seul point, toutes les
transactions financières de
plusieurs fournisseurs de moyens de paiements mobiles aux utilisateurs.
Les
bénéficiaires de
l’API pourraient alors
construire des applications offrant une combinaison infinie de ces services.
Besoins métiers
Défis
L'utilisation des moyens de paiement reposant sur les réseaux de téléphonie mobile, prolifèrent beaucoup plus dans les pays en voie de développement, où, l’accès aux smartphones performants et à la connexion internet à très haut débit n’est pas à la portée de tous. La plateforme se devait alors de s’aligner au contexte en fournissant des services qui ne nécessitent pas :
-
un grand volume de données
-
une forte puissance de calcul et de stockage
D’autre part, elle se devait d’être accessible 24/7 et fortement sécurisée afin de ne pas représenter une brèche à l’accès aux fonctionnalités exposées.
Solution
-
GraphQL est une spécification née chez Facebook, qui définit non seulement un nouveau
langage de requête pour les API, mais représente une alternative à l'utilisation
d'API REST dans le sens où elle vient résoudre certains de
leurs inconvénients avec de
nouvelles fonctionnalités telles que celles décrites :
- Le client a un contrôle total sur les données qui lui sont retournées, il ne reçoit que ce dont il a besoin, ni plus, ni moins. Aucune donnée inutile n'est donc chargée sur le réseau.
- Le client peut demander plusieurs ressources à la fois en une seule requête, pas besoin d'envoyer plusieurs requêtes. Idéal pour les connexions mobiles lentes.
- C’est donc naturellement que nos ingénieurs ont fait le choix de cette spécification pour la mise en place de l’API.
- Chez Zerofiltre, nous nous alignons constamment avec les derniers standards de sécurité. En termes d’APIs Web, la préconisation est d’exposer des services ou ressources en fonction des rôles et permissions des utilisateurs qui souhaitent y accéder.
- Enfin, afin d’assurer la haute disponibilité 24h/7j des APIs, nous nous sommes appuyés sur des technologies s’assurant tout d’abord du (re)démarrage de plusieurs instances de serveurs en cas de fortes charges, et aussi d’un équilibrage de charge constant entre les instances. Les cas d'indisponibilités deviennent alors inexistants.
Nos technologies
GraphQL
Spring Security
Spring AOP
Kubernetes
Implémentation
Les étapes d’implémentation comprenaient les phases suivantes :
-
Conception du contrat d’interface
-
Implémentation
-
Sécurisation
-
Déploiement final
Roadmap
Nous avons scindé la solution en plusieurs livrables, puis nous avons suivi une approche itérative par étapes, car nous avons été confrontés à des défis et à des changements d'exigences au cours du développement. Ces étapes comprenaient les phases suivantes :
Plus value métier
Le moteur d’agrégation des moyens de paiement mobiles est désormais extensible à l’infini. En effet , les APIs que nous avons exposées permettent désormais au client de monétiser son logiciel au grand public, mais aussi d’ouvrir la porte à de nouvelles fonctionnalités insoupçonnées , qui auront pour effet d’accroître la notoriété de ce logiciel et par conséquent le business du client.