wcs/help/fr/api-cards.page

211 lines
5.6 KiB
Plaintext
Raw 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.

This file contains Unicode characters that might be confused with other characters. 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-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 dune fiches</title>
<p>
Lexemple suivant récupère les données dune 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 lOpé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 lAPI d
<link xref="api-get#pull">récupération des données dun formulaire</link>.
</p>
</section>
<section id="listing">
<title>Liste de fiches</title>
<p>
La liste des fiches dun 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>
<output>{
"data": [
{
"id": 1,
"text": "Parking de la place",
"url": "https://www.example.net/backoffice/data/parkings/1/",
"last_update_time": "2015-03-26T23:08:45",
"receipt_time": "2015-03-26T23:08:44",
"display_id": "12-1",
"display_name": "Parkings - n°12-1"
},
{
"id": 3,
"text": "Parking de la rivière",
"url": "https://www.example.net/backoffice/data/parkings/3/",
"last_update_time": "2015-03-27T12:11:21",
"receipt_time": "2015-03-27T12:45:19",
"display_id": "12-3",
"display_name": "Parkings - n°12-3"
}
]
}</output>
</screen>
<p>
Des paramètres peuvent être envoyés dans la requête pour filtrer la liste des
fiches, ils sont similaires à ceux de lAPI de <link
xref="api-get#listing">récupération dune 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 dun 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>