Composant REST dans jBPM – Guide Complet avec Exemples (en Français)

Les processus métiers modernes nécessitent souvent d'appeler des services externes : microservices internes, API publiques ou systèmes tiers.
Avec jBPM, cela est très simple grâce au REST Work Item Handler (REST WIH), également appelé Composant REST.

Dans cet article, vous allez apprendre :

  • Ce qu’est le composant REST

  • Comment le configurer dans jBPM

  • Comment effectuer des appels GET, POST, PUT, PATCH, DELETE

  • Comment envoyer des en-têtes, paramètres et corps JSON

  • Comment récupérer les réponses et les stocker dans des variables du processus

  • Les bonnes pratiques


🔹 Qu’est-ce que le Composant REST dans jBPM ?

Le REST Work Item Handler permet à votre processus BPMN d’effectuer des appels REST externes.

Il permet :

✔ d’appeler n’importe quelle API REST
✔ d’utiliser GET / POST / PUT / DELETE / PATCH
✔ d’envoyer un corps JSON/XML
✔ d’envoyer des en-têtes HTTP (headers)
✔ de récupérer le code statut + réponse du serveur
✔ de stocker la réponse dans vos variables du processus

Il s’utilise dans une Tâche de Service (Service Task) dans jBPM.


🔧 Configuration du REST Work Item Handler

Dans votre pom.xml :

<dependency> <groupId>org.jbpm</groupId> <artifactId>jbpm-workitems-rest</artifactId> <version>7.74.1.Final</version> </dependency>

Enregistrement du handler :

kmodule.registerWorkItemHandler("Rest", new org.jbpm.process.workitem.rest.RESTWorkItemHandler());

Votre processus peut maintenant effectuer des appels REST.


📘 Exemple BPMN Simplifié

Début → Tâche REST → Script → Fin


📤 Exemple 1 : Appel REST POST (JSON Simple)

Paramètres dans la Tâche de Service

ParamètreValeur
📤 MéthodePOST
Urlhttps://api.restful-api.dev/objects
ContentTypeapplication/json
Body{"name":"Laptop","price":999}

Utilisation de la réponse :

String apiResponse = (String) kcontext.getVariable("result"); Integer status = (Integer) kcontext.getVariable("status"); System.out.println("API Status: " + status); System.out.println("Réponse API : " + apiResponse);

⛳ Exemple 2 : Appel REST GET

ParamètreValeur
⛳ MéthodeGET
Urlhttps://api.restful-api.dev/objects/100
ContentTypeapplication/json

♻️ Exemple 3 : Appel REST PUT

Corps JSON :

{ "name": "Updated Product", "price": 1200 }
ParamètreValeur
♻️ MéthodePUT
Urlhttps://api.restful-api.dev/objects/100
BodyJSON Body

✏️ Exemple 4 : Appel REST PATCH

ParamètreValeur
✏️ MéthodePATCH
Urlhttps://api.restful-api.dev/objects/100
Body{"price": 1500}

🗑️ Exemple 5 : Appel REST DELETE

ParamètreValeur
🗑️ MéthodeDELETE
Urlhttps://api.restful-api.dev/objects/100

📌 Exemple 6 : Ajouter des Headers (Authorization, API Key)

headers: { "Authorization": "Bearer 12345", "x-api-key": "ABC-XYZ" }

Dans la Tâche REST :

NomValeur
HeadersAuthorization=Bearer 12345,x-api-key=ABC-XYZ
📤 MéthodePOST

⛳ Exemple 7 : URL Dynamique avec Variables du Processus

https://api.example.com/items/#{itemId}

→ jBPM remplace automatiquement #{itemId}.

Appel ⛳ GET dynamique.


🎯 Bonnes Pratiques pour le REST dans jBPM

✔ Stocker les URLs et Tokens dans des variables globales
✔ Ajouter un Script Task après l’appel pour valider la réponse
✔ Convertir les réponses JSON en POJO via Jackson
✔ Ne pas mettre de gros JSON directement dans le BPMN
✔ Utiliser les variables de processus pour les IDs dynamiques

👉 Regardez “REST Component in jBPM 7” en action:

Une démonstration en direct montrant comment le composant REST fonctionne avec un processus.
🎬 YouTube: Learn IT with Shikha

👉 Code source: 
Branches: RESTComponent

LearnITWithShikha/customWorkItemItemHanlder at RESTComponent


🧠 Quand utiliser le REST Work Item ?

✔ Idéal si :

  • Vous voulez zéro code Java

  • Vous configurez les appels directement dans BPMN

  • Vous souhaitez une visibilité claire du flux métier

❌ Moins adapté si :

  • Authentification complexe

  • Logique d’erreur avancée

  • Besoin de transformations JSON complexes

Dans ce cas → utiliser Java + Service Task.


✅ Résumé

FonctionSupport REST WIH
Appels API
JSON/XML
Headers
Variables dynamiques
Réponse + statut
Configuration facile

Le Composant REST de jBPM est un outil puissant qui permet d’intégrer facilement des API externes dans vos workflows.

💼 Support professionnel disponible

Si vous rencontrez des problèmes sur des projets réels liés au développement backend d’entreprise ou à l’automatisation des workflows, je propose des services de conseil payants, de débogage en production, de support projet et de formations ciblées.

Les technologies couvertes incluent Java, Spring Boot, PL/SQL, Azure, ainsi que l’automatisation des workflows (jBPM, Camunda BPM, RHPAM).

📧 Contactishikhanirankari@gmail.com info@realtechnologiesindia.com


Comments

Popular posts from this blog

jBPM Installation Guide: Step by Step Setup

Scopes of Signal in jBPM

OOPs Concepts in Java | English | Object Oriented Programming Explained