Aller au contenu principal

Documentation Kong


Kong est le point d'entrée unique pour toutes les requêtes entre applications. Toutes les communications inter-apps passent par lui.

Cette section explique simplement ce que vous devez faire pour :

  • exposer vos endpoints publics via Kong,
  • consommer les endpoints des autres applications.

💡 Remarque : la communication entre un frontend et son backend ne concerne que leur propre application et ne passe donc pas par Kong. Kong intervient uniquement pour les échanges entre applications, c’est-à-dire lorsque l’une consomme les endpoints exposés par une autre. Dans le cadre de cette section, on parle donc exclusivement des endpoints publics, utilisés entre applications, exposés via Kong et portant le préfixe '/api/publique'.


⚙️ 1. Exposer vos endpoints publics

Les endpoints publics sont ceux que votre application rend accessibles aux autres applications (par convention : /api/publique/...).

Ce que vous devez faire :

  1. Consultez le document fourni par les urbanistes. Il contient la liste officielle des endpoints que votre application doit exposer et les consommateurs autorisés. Vous pouvez le retrouver sur le teams du projet.
info

⚠️ Notez que :

  • Tout endpoint qui ne vous est pas indiqué dans ce document doit être privé (ne possèdera donc pas le préfixe "api/publique/")
  • vous pouvez ajouter des suffixes après api/publique/endpoint_name/... pour gérer des sous-chemins spécifiques.
  1. Implémentez uniquement ces endpoints dans votre code backend. Exemple :

    @Get('/api/publique/produits')
    getProduits() {
    return this.produitsService.findAll();
    }
  2. Ne créez pas d'autres endpoints publics sans validation. Si vous pensez qu’un nouvel endpoint doit être exposé :

    • discutez-en avec les urbanistes ;
    • s’ils valident, ils mettront à jour le document de référence et préviendront les DevOps.

⚠️ Vous ne devez exposer ni plus ni moins que ce qui est indiqué dans le document validé par les urbanistes.


🧰 2. Ce que gèrent les DevOps

Vous n’avez rien à modifier dans la configuration de Kong. L’équipe DevOps s’occupe de :

  • déclarer vos endpoints publics dans Kong ;
  • d’ajouter les consommateurs autorisés ;
  • d’appliquer la configuration dans les environnements (staging, prod, etc.).

Si une mise à jour est nécessaire, les urbanistes la communiquent aux DevOps.


🌐 3. Consommer les endpoints d’autres applications

Quand vous voulez appeler un backend d’une autre application, vous devez passer par Kong.

Étape 1 — Ajouter les variables d’environnement

Dans votre fichier .env :

KONG_API_GATEWAY=https://kong-proxy.staging.ubsi.fr
KONG_API_KEY=dev-kong-api-key-ubsi
  • KONG_API_GATEWAY : l’URL de base de la gateway
  • KONG_API_KEY : la clé API qui identifie votre application

Étape 2 — Faire une requête via Kong

Utilisez la gateway et ajoutez le header X-API-Key :

const uri = '/api/publique/produits';
const res = await firstValueFrom(
this.httpService.get(
`${this.configService.getOrThrow<string>('KONG_API_GATEWAY')}${uri}`,
{
headers: {
'X-API-Key': this.configService.getOrThrow<string>('KONG_API_KEY'),
},
},
),
);

➡️ Changez simplement uri selon l’endpoint que vous voulez appeler.


Étape 3 — Vérifier vos droits

Pour qu’une requête fonctionne :

  1. L’endpoint doit exister dans le backend fournisseur.
  2. Votre application doit être autorisée à y accéder (voir le document des urbanistes).

Si vous obtenez une erreur 403 ou 404 :

  • vérifiez que l’endpoint existe ;
  • contactez les urbanistes pour vérifier les autorisations.

✅ Bonnes pratiques

  • N’exposez que ce qui est défini dans le document officiel.
  • Ne dupliquez pas de chemins /api/publique/... existants.
  • Testez vos appels en staging avant la production.
  • Documentez vos endpoints et vos appels dans la documentation de votre application.