wcs/help/fr/api-schema.page

193 lines
4.4 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-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 ces 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 à
l'URL <code>/api/formdefs/</code>.
</p>
<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" \
https://www.example.net/api/formdefs/</input>
<output>
[{"url": "https://www.example.net/inscriptions/newsletter",
"title": "Newsletter",
"slug": "newsletter",
"count": 17,
"authentication_required": false,
"redirection": false,
"description": "",
"keywords": [],
"category": "Inscriptions"},
{"url": "https://www.example.net/inscriptions/piscine",
"title": "Piscine",
"slug": "piscine",
"count": 6,
"authentication_required": true,
"redirection": false,
"description": "La piscine est ouverte du lundi au samedi.",
"keywords": ["sport"],
"category": "Inscriptions"}
]
</output>
</screen>
<note>
<p>
Note de compatibilité : la même information 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>
</note>
</section>
<section id="categories">
<title>Catégories</title>
<p>
La liste des catégories est disponible à l'URL <code>/api/categories/</code>.
</p>
<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" \
https://www.example.net/api/categories/</input>
<output>
{"data":
[
{"url": "https://www.example.net/inscriptions/",
"slug": "inscriptions",
"title": "Inscriptions",
"description": "&lt;p&gt;Pour vous et vos enfants...&lt;/p&gt;" },
{"url": "https://www.example.net/etat-civil/",
"slug": "etat-civil",
"title": "État civil"}
]
}
</output>
</screen>
<p>
Les formulaires d'une catégorie précise sont disponibles à l'URL
<code>/api/categories/<var>slug</var>/formdefs/</code>.
</p>
<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" \
https://www.example.net/api/categories/inscriptions/formdefs/</input>
</screen>
</section>
<section id="roles">
<title>Rôles</title>
<p>
La liste des rôles est disponible à l'URL <code>/api/roles</code>.
</p>
<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" \
https://www.example.net/api/roles</input>
<output>
{"data":
[
{"id": 1,
"text": "Gestionnaires formulaires",
"slug": "gestionnaires-formulaires"},
{"id": 2,
"text": "Usagers privilégiés",
"slug": "usagers-privilegies"}
]
}
</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 à l'adresse
<code>/api/formdefs/<em>slug</em>/schema</code>.
</p>
<code mime="application/json">
{
"name": "Newsletter",
"only_allow_one": "false",
"enable_tracking_codes": "true",
"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>
<note>
<p>
Note de compatibilité : la même information est disponible en ajoutant
<code>/schema</code> à l'adresse publique du formulaire, par exemple
<code>http://www.example.net/inscriptions/newsletter<em>/schema</em></code>.
</p>
</note>
</section>
</page>