wcs/help/fr/api-workflow.page

87 lines
2.6 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<page xmlns="http://projectmallard.org/1.0/"
type="topic" id="api-workflow" xml:lang="fr">
<info>
<link type="guide" xref="index#api" />
<revision docversion="0.1" date="2013-01-04" status="draft"/>
<credit type="author">
<name>Frédéric Péters</name>
<email>fpeters@entrouvert.com</email>
</credit>
<desc>Workflow, états, transition, etc.</desc>
</info>
<title>Traitement d'un formulaire</title>
<section>
<title>Synchrone</title>
<p>
Pour faire évoluer un formulaire en fonction de données extérieures, le
workflow peut contenir une action d'<link xref="wf-wscall">appel à un
webservice</link> et enchaîner sur une série de sauts automatiques,
conditionnés par le résultat de l'appel.
</p>
</section>
<section>
<title>Asynchrone</title>
<p>
Pour des traitements asynchrones, w.c.s expose également une API autorisant
les logiciels tiers à faire progresser le
traitement d'un formulaire; cela passe par la définition dans le statut du
workflow d'un élément de type « Changement de statut automatique », dans
lequel un identifiant de déclencheur est défini.
</p>
<p>
La demande d'un changement d'état se fait par une requête <code>POST</code> à
l'adresse du formulaire en question, suivi de <code>jump/trigger/</code> et de
la référence à l'identifiant de déclencheur (<code>validate</code> dans
l'exemple qui suit).
</p>
<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" -X POST \
https://www.example.net/inscriptions/newsletter/14/jump/trigger/validate<var>?signature…</var></input>
<output>{"url": null, "err": 0}</output>
</screen>
<p>
Il est également possible d'accompagner le déclenchement d'un changement
de statut d'une série de données, qui seront enregistrées dans les données de
workflow du formulaire.
</p>
<screen>
<output style="prompt">$ </output><input>curl -H "Content-type: application/json" -H "Accept: application/json" \
-X POST -d@donnes.json \
https://www.example.net/inscriptions/newsletter/14/jump/trigger/validate<var>?signature…</var></input>
<output>{"url": null, "err": 0}</output>
</screen>
<p>
Il est également possible de définir des déclencheurs au niveau des actions
globales du workflow, ils pourront alors être appelés quel que soit le statut
de la demande.
</p>
<p>
Un tel appel, avec un déclencheur global ici intitulé <code>urgent</code> se
ferait ainsi :
</p>
<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" -X POST \
https://www.example.net/api/forms/newsletter/14/hooks/urgent/<var>?signature…</var></input>
<output>{"err": 0}</output>
</screen>
</section>
</page>