Utiliser l'API Baleen
Fonctionnalités
Un utilisateur Baleen peut :
Appeler les API Baleen (nommées simplement "API" par la suite) :
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