Beaucoup recherchent des développeurs pour leurs projets, et pour ce faire, passent par des sociétés de services.
L’IT est un domaine vaste et complexe qui n’est pas aisément compréhensible par tous, même par les entreprises qui éditent une solution digitale. Pour les projets qui nous sont confiés, être développeur seul ne suffit pas.
C’est pourquoi, un peu d’architecture.

Le projet présenté ici s’adresse principalement aux développeurs, qui souhaitent avoir à disposition des APIs pour leurs projets.
One place to rule them all.
Tout ce qui a été mis en place est un exemple des technologies que nous mettons en œuvre pour réaliser les projets qui nous sont confiés. Voyons quelques points ensemble.
Micro-services à l’honneur
L’architecture micro-service s’est imposée comme un standard grâce à la modularité et à la séparation des domaines qu’elle permet.
Mais en plus de cela, la containerisation Docker et l’orchestrateur Kubernetes permettent de résoudre aisément des problématiques d’infrastructure tels que la réplication, le load balancing, en plus de faciliter le déploiement.
Authentication workflow
Tout commence par là, c’est la première étape pour accéder au catalogue d’API. Comme c’est un standard de l’authentification, l’utilisation d’OAuth 2 est ici de rigueur.

- Demande d’authentification de l’utilisateurs auprès de Github
- OK (ou pas)
- Un Webhook est appelé chez nous pour nous signaler la connexion
- On ajoute un compte en base (rassurez-vous, c’est vous qui gérez ce que vous voulez partager)
- On envoie un événement qui lancera quelques traitements asynchrones opérés par des workers
Mais ensuite ?
Via un endpoint unique, vous pouvez désormais appeler des APIs en spécifiant la clé, passée en entête HTTP. Chaque appel est enregistré pour être décompté d’un quota ou pour incrémenter un compteurs d’appel.
Pour des raison de performance, les compteurs d’appels sont agrégés avant d’être poussés dans une file d’événements Kafka. En peu formel mais explicite, ça donne ça :
