help: add page on cards API endpoints (#48362)

This commit is contained in:
Frédéric Péters 2020-12-06 15:37:32 +01:00
parent be7a18fe93
commit 33166c8ddc
1 changed files with 205 additions and 0 deletions

205
help/fr/api-cards.page Normal file
View File

@ -0,0 +1,205 @@
<page xmlns="http://projectmallard.org/1.0/"
type="topic" id="api-cards" xml:lang="fr">
<info>
<link type="guide" xref="index#api" />
<revision docversion="0.1" date="2020-12-06" status="draft"/>
<credit type="author">
<name>Frédéric Péters</name>
<email>fpeters@entrouvert.com</email>
</credit>
<desc>Liste de fiches, schémas de données, etc.</desc>
</info>
<title>Récupération des données de fiches</title>
<p>
Une application tierce peut récupérer les données des fiches, peut également
obtenir la liste des modèles de fiche et les schémas de données associés.
</p>
<section id="card">
<title>Récupération des données d'une fiches</title>
<p>
L'exemple suivant récupère les données d'une fiche « Parking », dont le modèle
de fiche a comme identifiant « parkings ».
</p>
<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" \
https://www.example.net/api/cards/parkings/5/<var>?signature…</var></input>
</screen>
<p>
Le contenu ainsi obtenu est le suivant :
</p>
<code mime="application/json">
{
"digest" : "Parking Opéra-Tolozan",
"display_id" : "31-5",
"display_name" : "Parkings - n°31-5",
"id" : "5",
"last_update_time" : "2020-11-24T14:18:16",
"receipt_time" : "2020-11-06T14:48:07",
"fields" : {
"adresse" : "rue de l'Opéra",
"date_ouverture" : "2020-11-12",
"nom" : "Parking Opéra-Tolozan"
},
"text" : "Parking Opéra-Tolozan",
"url" : "https://.../backoffice/data/parkings/5/",
"workflow" : {
"status" : {
"id" : "recorded",
"name" : "Recorded"
}
},
"evolution" : [...],
"geolocations": {...},
"roles": {...}
}
</code>
<p>
La structure du contenu correspond à celle de l'API d
<link xref="api-get#pull">récupération des données d'un formulaire</link>.
</p>
</section>
<section id="listing">
<title>Liste de fiches</title>
<p>
La liste des fiches d'un modèle donné est destinée à être utilisée par
un système de synchronisation. Elle ne retourne donc pour chaque fiche que
son numéro (id), ses dates de création et de dernière mise à jour.
</p>
<p>
Un système de synchronisation vérifiera depuis cette liste si de nouvelles
demandes existent, ou si certaines ont été mises à jour, sont obsolètes ou
effacées, puis effectuera pour chacune les actions nécessaires.
</p>
<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" \
https://www.example.net/api/cards/parkings/list<var>?signature…</var></input>
</screen>
<code mime="application/json">
[
{
url: "https://www.example.net/backoffice/data/parkings/1/",
last_update_time: "2015-03-26T23:08:45",
receipt_time: "2015-03-26T23:08:44",
id: 1
},
{
url: "https://www.example.net/backoffice/data/parkings/3/",
last_update_time: "2015-03-27T12:11:21",
receipt_time: "2015-03-27T12:45:19",
id: 3
}
]
</code>
<p>
Des paramètres peuvent être envoyés dans la requête pour filtrer la liste des
fiches, ils sont similaires à ceux de l'API de <link
xref="api-get#listing">récupération d'une liste de formulaires</link>.
</p>
</section>
<section id="card-schema">
<title>Schéma de données</title>
<p>
Une API existe pour récupérer le schéma de données d'un modèle de fiches.
</p>
<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" \
https://www.example.net/api/cards/parkings/@schema<var>?signature…</var></input>
<output>{
"always_advertise" : false,
"appearance_keywords" : null,
"confirmation" : false,
"description" : null,
"detailed_emails" : true,
"digest_template" : "{{form_var_nom}}",
"disabled" : false,
"disabled_redirection" : null,
"discussion" : false,
"drafts_lifespan" : null,
"enable_tracking_codes" : false,
"expiration_date" : null,
"fields" : [
{
"anonymise" : true,
"data_source" : {},
"label" : "Nom",
"prefill" : {
"type" : "none"
},
"required" : true,
"type" : "string",
"validation" : {},
"varname" : "nom"
},
...
],
"workflow" : {
"fields" : [],
"functions" : {
"_editor" : "Editor",
"_viewer" : "Viewer"
},
"name" : "Fiche parking",
"statuses" : [
{
"endpoint" : false,
"forced_endpoint" : false,
"id" : "recorded",
"name" : "Recorded",
"waitpoint" : true
},
...
}
}</output>
</screen>
</section>
<section id="card-models">
<title>Liste des modèles de fiches</title>
<p>Une API permet de récupérer la liste des modèles de fiches.</p>
<screen>
<output style="prompt">$ </output><input>curl -H "Accept: application/json" \
https://www.example.net/api/cards/@list<var>?signature…</var></input>
<output>{
"data" : [
{
"custom_views" : [],
"description" : "",
"id" : "parkings",
"keywords" : [],
"slug" : "parkings",
"text" : "Parkings",
"title" : "Parkings",
"url" : "https://.../backoffice/data/parkings/"
},
...
}
}</output>
</screen>
</section>
</page>