Bonjour les utilisateurs de bonita!
J’aimerais savoir comment utiliser correctement le connecteur de l’API REST.
J’ai créé une petite extension d’API REST pour tester ce modèle de conception, mais l’API renvoie une erreur -401.
Comme l’API répond avec succès via le navigateur (tant que je suis connecté au portail Bonita), j’ai supposé que le connecteur fonctionnerait de la même manière.
Pouvez-vous donner un exemple d’authentification correcte et de récupération du nom d’utilisateur et du mot de passe appropriés?
Bonjour,
Tout d’abord, en règle générale les extensions d’API REST sont prévues pour être appelée depuis les forms et pages créer avec l’UI Designer.
Le connecteur REST est quand à lui conçu pour (toujours en règle générale) obtenir ou publier des données depuis ou vers des applications tierces et interagissant avec les données traitées par le processus (utilisation des données métiers en entrée du connecteur ou mise à jour en sortie du connecteur).
Je ne connais pas votre cas d’usage mais peut être qu’il est possible de directement créer un connecteur qui contiendrais à peu près le contenu de votre extension d’API REST.
Sinon pour votre code d’erreur HTTP 401 cela correspond surement à un problème d’authentification nécessaire pour faire appel aux API REST (que ça soit celle de Bonita ou des extensions). Il faut pour faire appel à une API Bonita être identifié et inclure dans la requête HTTP une entête X-Bonita-API-Token
. Pour plus d’information sur l’authentification nécessaire pour effectuer des appels aux API REST de Bonita je vous recommande la page de documentation “REST API overview” et notamment la section “Authenticate to Bonita”. Cela doit être envisageable par l’exécution consécutive de deux connecteurs REST : un pour l’authentification, un autre pour l’appel à votre extension d’API REST.
Bonjour et merci pour votre réponse.
Si je comprend bien, la connexion de l’utilisateur a engendré un cookie nommé X-Bonita-API-Token qui contient un jeton de connexion, le JSESSIONID et qui doit être fourni lors des appels suivants.
Comme mes tests d’appels à mon API se faisaient via le navigateur, c’était automatiquement géré mais pour utiliser un connecteur, je dois le faire manuellement.
Si c’est bien cela, pouvez-vous me dire comment procéder ? Cet écran semble tout désigné mais je ne trouve pas de documentation sur sa correcte utilisation.
![Capture][Capture]
[Capture]: https://i.imgur.com/SVif6Kr.png
Par avance merci.
L’appel REST à l’API d’authentification va fournir une réponse qui comporte deux cookies: X-Bonita-API-Token et JSESSIONID.
C’est la valeur du cookie X-Bonita-API-Token qui nous intéresse ici. Il va falloir extraire cette valeur pour la fournir dans les appels aux API REST suivants non plus en tant que cookie mais dans le header des requêtes HTTP.
Je viens de regarder plus en détail et malheureusement il se trouve que des limitations actuelles du connecteur REST empêche de réaliser cette opération d’authentification. En effet le loginservice demande d’utiliser un content-type application/x-www-form-urlencoded
qui n’est pas disponible dans la configuration du connecteur. De plus le connecteur ne permet pas d’accéder à la valeur du cookie obtenu.
Donc afin d’avoir une architecture plus proche de ce que recommande la solution Bonita et d’éviter cette limitation du connecteur REST je recommande d’effectuer directement le traitement réalisé dans l’extension REST dans le code d’un connecteur “custom”.
Je vais suivre la piste du connecteur custom.
Merci pour votre aide et l’énergie que vous avez consacré à mon problème.