108 lines
2.6 KiB
Plaintext
108 lines
2.6 KiB
Plaintext
<page xmlns="http://projectmallard.org/1.0/"
|
||
type="topic" id="api-get" 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>Pull, push, types de données, etc.</desc>
|
||
|
||
</info>
|
||
|
||
<title>Récupération des données d'un formulaire</title>
|
||
|
||
<p>
|
||
Il s'agit ici d'une API permettant à un logiciel tiers de récupérer les données
|
||
associées à un formulaire complété; cet accès peut aussi bien être initié par
|
||
l'application tierce (mode pull) ou par w.c.s., à différents moments du
|
||
traitement d'un formulaire (mode push).
|
||
</p>
|
||
|
||
<section id="pull">
|
||
<title>Mode « Pull »</title>
|
||
|
||
<p>
|
||
L'exemple suivant récupère les données d'un formulaire d'inscription à une
|
||
newsletter.
|
||
</p>
|
||
|
||
<screen>
|
||
<output style="prompt">$ </output><input>curl -H "Accept: application/json" \
|
||
https://www.example.net/inscriptions/newsletter/16</input>
|
||
</screen>
|
||
|
||
<p>
|
||
Le contenu ainsi obtenu est le suivant :
|
||
</p>
|
||
|
||
<code mime="application/json">
|
||
{
|
||
"id": "newsletter/16",
|
||
"receipt_time": "2013-01-04T13:39:47",
|
||
"fields": {
|
||
"email": "marc@example.net",
|
||
"nom": "L.",
|
||
"prenom": "Marc"
|
||
},
|
||
"user": {
|
||
"id": 1,
|
||
"name": "Fred"
|
||
},
|
||
"workflow": {
|
||
"status": {
|
||
"id": "new",
|
||
"name": "New"
|
||
},
|
||
"data": {
|
||
"creation_status": 200,
|
||
"creation_response": {
|
||
"dn": "cn=marc@example.net,ou=people"
|
||
},
|
||
"inscription_status": 200,
|
||
"inscription_response": {
|
||
"liste": "lalettre@example.com"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</code>
|
||
|
||
<note>
|
||
<p>
|
||
Il est bien sûr nécessaire de disposer des autorisations nécessaires pour
|
||
accéder ainsi aux données d'un formulaire. (cf <link
|
||
xref="api-auth"/> pour les explications sur le sujet)
|
||
</p>
|
||
</note>
|
||
|
||
</section>
|
||
|
||
<section id="push">
|
||
<title>Mode « push »</title>
|
||
|
||
<p>
|
||
Il est également possible pour un workflow d'être configuré pour transmettre
|
||
les données à une URL fournie par une application tierce. Un document JSON
|
||
(tel celui donné plus haut) est alors transmis en utilisant la méthode POST.
|
||
</p>
|
||
|
||
<p>
|
||
En retour, l'application tierce peut fournir un objet JSON qui sera enregistré
|
||
dans les données du workflow du formulaire (voir le dictionnaire "data" dans
|
||
l'exemple ci-dessus).
|
||
</p>
|
||
|
||
</section>
|
||
|
||
|
||
<section id="datatypes">
|
||
<title>Types de données</title>
|
||
|
||
</section>
|
||
|
||
|
||
</page>
|