Utiliser l'API Baleen

Fonctionnalités

Un utilisateur Baleen peut :

Pré requis : Les APIs sont uniquement accessibles pour les utilisateurs authentifiés.
Nous avons choisi d'utiliser le principe de "Personal Access Token" (ou PAT) pour cela. Vous aurez donc à disposition un token à passer dans chaque requête, et permettant de vous identifier.
Dans la version courante de l’API, le PAT vous sera transmis directement par l’équipe de support Baleen.

Appeler une API

Pour appeler une API, vous aurez besoin du PAT.

Nous différencions 2 types d'accès API :
   ● les APIs de compte (exemple : /api/account)
   ● les APIs de gestion (exemple : /api/cache)

 

La différence entre les 2 est que les APIs de gestion nécessitent, en plus du PAT, une information de contexte (namespace), pour savoir sur quelle instance de Baleen faire la modification (certains clients peuvent avoir plusieurs instances).

Récupération du namespace

Pour récupérer le namespace à utiliser pour les requêtes suivantes, il faut faire une requête sur "/api/account" :

`curl https://console.baleen.cloud/api/account -H "X-Api-Key: <PAT>"`

 

Dans la réponse, vous aurez la liste des namespaces disponibles pour cet utilisateur. Il faut récupérer la clé associée au namespace voulu :

{ "id" : "ab72be83-2453-42d7-90dc-5406384b21e4", "login" : "admin_integration@cshield.tech", "firstName" : "Admin", "lastName" : "Integration", "email" : "admin_integration@cshield.tech", "activated" : true, "langKey" : "en", "createdDate" : "2020-09-14T14:06:38.702553Z", "lastModifiedDate" : "2020-09-14T14:06:38.702559Z", "authorities" : [ "ROLE_USER", "ROLE_ADMIN" ], "namespaces" : { "z9FSxMAA36O/Id0A9sfqIw==" : "Demo", "PC5EASWiddi1cRGnxOPyGA==" : "Multipop" } }

 

Notes : Il est important de bien passer par cette requête '/api/account' pour récupérer le namespace, car, pour des raisons de sécurité, cette chaine pourra varier. Cette variation étant néanmoins relativement peu fréquente, cet appel peut être fait en mode "fallback".

Cibler un namespace dans l’utilisation des API de gestion

Une fois la clé du namespace récupérée il faut la passer dans un cookie de session.

baleen-namespace=<namespace-key>

Si ce cookie n’est pas renseigné, les demandes faites à l’API de gestion ne seront pas prises en compte par le produit.


Invalidation de ressources

Pour invalider une ou plusieurs ressources il faut appeler le endpoint suivant en méthode POST : /api/cache/invalidations

 

Tips 1 : Penser à passer le header X-Api-Key: <PAT>
Tips 2 : Penser à renseigner le cookie pour cibler le namespace voulu

 

Le modèle de requête à fournir pour le body :

<string> peut être sous la forme de :

  • Pattern au format PCRE

  • URL pointant vers une ressource

est une chaîne de caractères qui doit être PCRE.

 

Cas de retours:
   ● 200 => invalidation valide (traitement de l’invalidation démarré)
   ● 400 =>
      ○ Format du body incorrect
      ○ Certaines entrées d'invalidation ne sont pas au bon format.  Dans la réponse une propriété ‘notCompliantPatterns’ est un tableau listant les entrée invalides.
   ● 500 => Erreur serveur d’invalidation, contacter le support si l’erreur persiste

--> Swagger doublon voir

exemple avec curl + description fonctionnalité

Exemples

Exemple 1 : Je veux invalider toutes les ressources

 

Exemple 2 : Je veux invalider un lot de ressources

 

Exemple : J’invalide un pattern qui n’est pas PCRE

 

Réponse 400 => une entrée est ciblée comme n’étant pas valide