Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Exemple d'utilisation — API Équidés

Un explorateur de généalogie : on cherche un nom, le graphe s'ouvre — ascendance d'un côté, descendance de l'autre — et chaque nœud se clique pour devenir le nouveau sujet.

Trois fichiers, aucune dépendance, aucune étape de construction.

python3 -m http.server 8000

Puis http://localhost:8000. Ouvrir index.html directement fonctionne aussi : l'API répond Access-Control-Allow-Origin: *.

Ce que la page montre de l'API

L'autocomplétionGET /v1/search?q=… à chaque frappe, classée par pertinence par le service. Les mots comptent : invictus du fa ne propose que les INVICTUS DU FA….

Deux endpoints de généalogie, deux coûts. C'est ce que le graphe rend visible :

Appels Pourquoi
Ascendance, 3 générations 1 /pedigree?generations=3 rend l'arbre entier
Descendance, 2 générations 9 /descendance ne donne que les produits directs : il faut redescendre nœud par nœud

Le compteur sous le graphe et le journal réseau en bas de page affichent ces appels et leur durée. C'est l'argument du endpoint dédié : remonter quatre générations à la main coûterait trente allers-retours, l'API le fait en un.

L'exploration de la descendance est bornée à 24 appels — sans quoi un étalon à 1 466 produits ferait exploser la note.

Ce qui mérite d'être copié

Annuler la requête précédente. Un AbortController par saisie : sans lui, une réponse lente arrivée après une plus récente réécrit l'affichage avec un état périmé.

Attendre la fin de la frappe. 150 ms de délai avant d'interroger le service : « qabalah » déclenche une requête au lieu de sept.

Lire le corps des erreurs. Le service répond en RFC 9457 : detail dit ce qui ne va pas, indice propose la correction. La page les affiche tels quels plutôt que d'inventer ses propres messages.

{
  "type": "https://docs.api-equides.org/guides/erreurs/#erreur-parametre-invalide",
  "title": "Paramètre invalide",
  "status": 400,
  "detail": "paramètre inconnu `rase`",
  "indice": "vouliez-vous dire `race` ?"
}

Ne pas construire d'URL à la main. GET / publie les gabarits (gabarits_url) et la liste des routes.

Lire le graphe

Le sujet est au centre. À droite l'ascendance, à gauche la descendance, en cercles creux.

La couleur donne le sexe — bleu mâle, rose femelle, gris inconnu. L'ascendance le porte toujours : /pedigree sert sexe pour chaque nœud. La descendance, elle, reste grise : /descendance ne renvoie que id, nom, race et fiche_disponible.

Glisser déplace, la molette zoome, un clic sur un nœud le prend pour sujet, recadre. La touche / remet le curseur dans la recherche.

À savoir

Le quota se compte en unités de réponse, pas en appels : une recherche vaut une unité, un pedigree profond davantage. Le guide des limites donne le détail.

Les réponses portent un ETag et un Cache-Control: max-age=3600. Excellent en production, déroutant quand on met le service au point : une réponse obtenue avant un correctif reste servie une heure durant, sans qu'aucune requête ne parte. Itérez en fenêtre privée, ou forcez le rechargement. On ne peut pas casser ce cache avec un paramètre bidon — l'API refuse les paramètres inconnus, &nocache=1 vaut un 400. Faire varier limite est le seul levier.

Dans l'arbre, le champ race d'un ancêtre est celui de sa fiche — parfois un chrono de course, la source étant ce qu'elle est. Les défauts connus les recensent.

Licence

MIT. L'API elle-même : Collectif-Pixel/api-equides.

Service indépendant, non affilié à l'IFCE.

About

Example d'usage de l'api équidés

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages