wcs/help/fr/api-schema.page

164 lines
3.8 KiB
Plaintext

<page xmlns="http://projectmallard.org/1.0/"
type="topic" id="api-schema" 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>Formulaires, profils utilisateur, etc.</desc>
</info>
<title>Accès aux listes et schémas de données</title>
<p>
w.c.s expose une API permettant aux logiciels tiers de connaître les différents
formulaires et leurs schémas de données.
</p>
<note><p>Toutes cs URL sont conformes à la spécification de remontée d'information du
<em>Portail citoyen</em>, acceptent ainsi un paramètre <code>email</code> ou
<code>NameID</code>, et nécessitent alors un paramètre <code>orig</code>.
</p></note>
<section id="forms">
<title>Formulaires</title>
<p>
La liste des formulaires accessibles à un utilisateur est disponible à
la racine du site, quand un entête <code>Accept: application/json</code>
est transmis, ou à une URL <code>/json</code> autrement.
</p>
<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" \
https://www.example.net/</input>
<output>
[{"url": "https://www.example.net/inscriptions/newsletter",
"title": "Newsletter",
"slug": "newsletter",
"count": 17,
"authentication_required": false,
"category": "Inscriptions"},
{"url": "https://www.example.net/inscriptions/piscine",
"title": "Piscine",
"slug": "piscine",
"count": 6,
"authentication_required": true,
"category": "Inscriptions"}
]
</output>
</screen>
<p>
Les formulaires d'une catégorie précise sont disponibles de la même manière, à
la racine de la catégorie.</p>
<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" \
https://www.example.net/inscriptions/</input>
</screen>
</section>
<section id="categories">
<title>Catégories</title>
<p>
La liste des catégories est disponible à l'URL <code>/categories</code>.
</p>
<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" \
https://www.example.net/categories</input>
<output>
{"data":
[
{"url": "https://www.example.net/inscriptions/",
"title": "Inscriptions",
"description": "&lt;p&gt;Pour vous et vos enfants...&lt;/p&gt;" },
{"url": "https://www.example.net/etat-civil/",
"title": "État civil"}
]
}
</output>
</screen>
</section>
<section id="roles">
<title>Rôles</title>
<p>
La liste des rôles est disponible à l'URL <code>/roles</code>.
</p>
<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" \
https://www.example.net/roles</input>
<output>
{"data":
[
{"id": 1,
"text": "Gestionnaires formulaires"},
{"id": 2,
"text": "Usagers privilégiés"}
]
}
</output>
</screen>
</section>
<section id="data-schema">
<title>Schéma de données d'un formulaire</title>
<p>
Le schéma de données d'un formulaire est accessible en ajoutant
<file>/schema</file> à son URL, par exemple le contenu suivant est
obtenu à l'adresse
<code>http://www.example.net/inscriptions/newsletter<em>/schema</em></code>.
</p>
<code mime="application/json">
{
"name": "Newsletter",
"only_allow_one": "false",
"allow_drafts": "false",
"confirmation": "true",
"discussion": "false",
"fields": [
{
"label": "Nom",
"required": "True",
"type": "string",
"varname": "nom"
},
{
"label": "Pr\u00e9nom",
"required": "True",
"type": "string",
"varname": "prenom"
},
{
"label": "Adresse \u00e9lectronique",
"required": "True",
"type": "email",
"varname": "email"
}
]
}
</code>
</section>
</page>