Lire les réponses d'un formulaire
Retrouver un formulaire web et sa page publique, lister ses réponses, lire leurs valeurs, leurs fichiers et les fiches qu'elles ont créées.
Un formulaire web se remplit sur sa page publique. Chaque réponse envoyée est une instance du formulaire : ses champs, avec les valeurs saisies. L'API lit ces réponses, et les fiches qu'elles ont créées.
1Le formulaire et sa page
GET https://staging-api.docage.com/Forms/TemplatesIdAndName
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…curl "https://staging-api.docage.com/Forms/TemplatesIdAndName" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…"using HttpClient client = new();
using HttpRequestMessage request = new(HttpMethod.Get, "https://staging-api.docage.com/Forms/TemplatesIdAndName");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
using HttpResponseMessage response = await client.SendAsync(request);
string result = await response.Content.ReadAsStringAsync();
if (!response.IsSuccessStatusCode)
throw new HttpRequestException(result);const response = await fetch("https://staging-api.docage.com/Forms/TemplatesIdAndName", {
headers: {
Authorization: `Bearer ${token}`
}
});
const text = await response.text();
if (!response.ok) throw new Error(text);
const result = text ? JSON.parse(text) : null;GET https://staging-api.docage.com/Forms/{id} lit le formulaire : ses champs (Fields, chacun avec son nom technique Name, son type et son libellé)
et l'adresse de sa page publique (IntegrationLink), à partager ou à intégrer dans un site.
2Les réponses
QUERY https://staging-api.docage.com/Forms
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…
Content-Type: application/json
{ "TemplateId": "33333333-0000-4000-8000-000000000003", "Skip": 0, "Take": 50, "SortOrder": "CreationDate_Desc" }curl -X QUERY "https://staging-api.docage.com/Forms" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "Content-Type: application/json" \
-d '{
"TemplateId": "33333333-0000-4000-8000-000000000003",
"Skip": 0,
"Take": 50,
"SortOrder": "CreationDate_Desc"
}'using HttpClient client = new();
using HttpRequestMessage request = new(new HttpMethod("QUERY"), "https://staging-api.docage.com/Forms");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
request.Content = new StringContent("""
{
"TemplateId": "33333333-0000-4000-8000-000000000003",
"Skip": 0,
"Take": 50,
"SortOrder": "CreationDate_Desc"
}
""", Encoding.UTF8, "application/json");
using HttpResponseMessage response = await client.SendAsync(request);
string result = await response.Content.ReadAsStringAsync();
if (!response.IsSuccessStatusCode)
throw new HttpRequestException(result);const response = await fetch("https://staging-api.docage.com/Forms", {
method: "QUERY",
headers: {
Authorization: `Bearer ${token}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"TemplateId": "33333333-0000-4000-8000-000000000003",
"Skip": 0,
"Take": 50,
"SortOrder": "CreationDate_Desc"
})
});
const text = await response.text();
if (!response.ok) throw new Error(text);
const result = text ? JSON.parse(text) : null;TemplateId est le formulaire ; chaque fiche rendue est une réponse. Lisez-en une par GET https://staging-api.docage.com/Forms/{id} : chaque champ
porte sa valeur dans UserData.
{
"Fields": [
{ "Type": "text", "Name": "Email", "UserData": ["camille.martin@example.com"] },
{ "Type": "checkbox", "Name": "Prestations", "UserData": ["Éclairage", "Vitrine"] }
]
}3Les fichiers déposés
Un champ d'envoi de fichier porte dans UserData l'identifiant de chaque fichier déposé :
GET https://staging-api.docage.com/FormFiles/Download/44444444-0000-4000-8000-000000000004
Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…curl "https://staging-api.docage.com/FormFiles/Download/44444444-0000-4000-8000-000000000004" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9…"using HttpClient client = new();
using HttpRequestMessage request = new(HttpMethod.Get, "https://staging-api.docage.com/FormFiles/Download/44444444-0000-4000-8000-000000000004");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
using HttpResponseMessage response = await client.SendAsync(request);
string result = await response.Content.ReadAsStringAsync();
if (!response.IsSuccessStatusCode)
throw new HttpRequestException(result);const response = await fetch("https://staging-api.docage.com/FormFiles/Download/44444444-0000-4000-8000-000000000004", {
headers: {
Authorization: `Bearer ${token}`
}
});
const text = await response.text();
if (!response.ok) throw new Error(text);
const result = text ? JSON.parse(text) : null;Le fichier est rendu tel qu'il a été déposé, avec son type d'origine.
4Les fiches créées
Un formulaire peut créer des fiches à chaque réponse — un contact, une carte, un document… Le champ qui crée porte l'identifiant
de la fiche créée (CreatedEntityId, CreatedEntityIds quand il en crée plusieurs), et la fiche porte celui de la réponse
(GeneratedByFormId). Un flux qui se déclenche à chaque réponse peut aussi en faire davantage.
Être prévenu d'une réponse
Une réponse est une fiche créée : abonnez un webhook à la création des fiches du formulaire (voir Recevoir un webhook), plutôt que de relire la liste.