Méthodes HTTP prises en charge par les API REST d'IBM BPM
Les méthodes HTTP fournissent les opérations, telles que la création, la lecture, la mise à jour et la suppression, que vous pouvez effectuer sur des artefacts IBM® BPM.
Les méthodes HTTP suivantes sont prises en charge :
| Méthode HTTP | Description |
|---|---|
| POST | Crée une ressource. |
| GET | Extrait une ressource. |
| PUT | Met à jour une ressource existante. |
| DELETE | Supprime une ressource. |
La méthode GET est une méthode sécurisée car l'état de la ressource n'est pas modifié par cette opération.
Important : Les API IBM BPM REST
présentent les fuseaux horaires au format UTC (Temps Universel Coordonné).
Si vous voulez que votre
application affiche la date et/ou l'heure dans un autre fuseau
horaire, vous pouvez obtenir une instance de java.text.DateFormat,
définir TimeZone sur la valeur souhaitée, puis appeler format,
en transmettant l'objet Date à afficher.
Le fragment de code suivant utilise le fuseau horaire par défaut dans lequel l'application s'exécute :
// En supposant que "dateFromREST" est un objet java.util.Date
DateFormat df = DateFormat.getDateTimeInstance();
TimeZone tz = TimeZone.getDefault();
df.setTimeZone(tz);
String formattedDate = df.format(dateFromREST);
// formattedDate comporte la date que l'utilisateur doit voir.
Remarques sur la sécurité
Lorsque vous utilisez des méthodes HTTP, prenez en considération les aspects de sécurité suivants :
- Certains pare-feux n'autorisent pas le trafic HTTP PUT ou DELETE via le pare-feu en raison des mesures de sécurité. Pour prendre en compte cette restriction, vous pouvez envoyer ces requêtes de l'une des manières suivantes :
- Utilisez les zones d'en-tête HTTP X-Method-Override ou X-HTTP-Method-Override HTTP pour encapsuler une requête PUT ou DELETE via une requête POST.
- Si la requête concerne une ressource associée à une définition de processus métier, vous pouvez utiliser
x-method-override ou les paramètres d'URI x-http-method-override. Par exemple :
POST /rest/bpm/htm/v1/task?...&x-method-override=PUT
- Vous pouvez utiliser certaines des méthodes HTTP pour les ressources relatives
à la définition de processus métier pour évaluer les expressions JavaScript. En raison de considérations
de sécurité, la prise en charge de JavaScript n'est pas activée par défaut. Pour activer
la prise en charge de JavaScript, définissez la propriété associée dans le fichier 100Custom.xml du serveur
de processus :
<properties> <common> <enable-javascript-execution>true</enable-javascript-execution> </common> </properties>
Remarques sur la longueur d'URI des requêtes API REST
Dans certains cas, la longueur de l'URI d'une requête API REST peut dépasser la longueur d'URI prise en charge, par exemple en raison des restrictions du navigateur ou du nombre et de la longueur des paramètres de requête dans l'URI de requête.Pour résoudre ce problème, vous pouvez encapsuler votre requête via une requête POST utilisant le type de contenu application/x-www-form-urlencoded. Pour exploiter cette solution palliative, construisez la requête API REST de la manière suivante :
- Utilisez la méthode POST dans la requête HTTP.
- Définissez l'en-tête HTTP X-HTTP-Method-Override sur la méthode prévue à partir de votre requête d'origine. Par exemple, si vous envisagiez que votre requête d'origine soit une requête PUT, affectez à cet en-tête la valeur PUT.
- Affectez à l'en-tête HTTP Content-Type la valeur application/x-www-form-urlencoded.
- Ajoutez tous les paramètres de requête de la chaîne de requête d'URI de votre requête d'origine au corps de la requête HTTP.
Par exemple, vous devez appeler l'API REST suivante pour définir certaines variables de sortie afin de terminer l'instance d'une tâche mais l'URI de requête est trop long :
PUT http://host1.company.com:9080/rest/bpm/wle/v1/task/3?action=finish¶ms={"orderNumber":"5","customerName":{"firstName":"John","lastName":"Doe"}}
Headers:
Accept application/json
La requête HTTP suivante montre comment appeler la même API en utilisant le type de contenu application/x-www-form-urlencoded :POST http://host1.company.com:9080/rest/bpm/wle/v1/task/3
Headers
Accept application/json
Content-Type: application/x-www-form-urlencoded
X-Method-Override: PUT
Request Body:
action=finish¶ms={"orderNumber":"5","customerName":{"firstName":"John","lastName":"Doe"}}