Aller au contenu

Ascendance sur N générations

GET
/v1/equides/{id}/pedigree
curl --request GET \
--url 'https://api-equides.org/v1/equides/Z4ogLhlkS2CeUdq0bZ0YFw/pedigree?generations=5'

En REST naïf, remonter un pedigree coûterait une requête par ancêtre — 31 allers-retours sur cinq générations. La filiation étant résolue en indices de ligne à l’ingestion, cet endpoint répond en une seule requête cacheable, au coût borné.

Un parent référencé mais absent du jeu interrompt la branche : l’écart entre noeuds et noeuds_theoriques mesure ces lacunes.

id
required
string
Example
Z4ogLhlkS2CeUdq0bZ0YFw
generations
integer
default: 4 <= 8

Profondeur, 4 par défaut, 8 au maximum ; au-delà, un 400. Un arbre double de taille à chaque rang : 8 générations représentent déjà jusqu’à 1 023 ancêtres.

Example
5

Arbre d’ascendance. noeuds compte les ancêtres réellement connus, noeuds_theoriques ceux qu’un pedigree complet compterait.

Media typeapplication/json
object
arbre
required

Nœud d’un arbre d’ascendance ; pere et mere sont des Noeud.

object
annee_naissance
integer
generation

0 pour le sujet, 1 pour ses parents, etc.

integer
id
string
mere
object recursive
nom
string
pere
object recursive
race
string
sexe
string
generations
required

Profondeur demandée.

integer
noeuds
required

Ancêtres réellement connus, sujet compris.

integer
noeuds_theoriques
required

Ce qu’un pedigree complet compterait à cette profondeur. L’écart avec noeuds mesure les lacunes de l’ascendance.

integer
Examplegenerated
{
"arbre": {
"annee_naissance": 1,
"generation": 1,
"id": "example",
"mere": {},
"nom": "example",
"pere": {},
"race": "example",
"sexe": "example"
},
"generations": 1,
"noeuds": 1,
"noeuds_theoriques": 1
}

Contenu inchangé depuis l’ETag fourni en If-None-Match. Aucun corps, et rien n’est recalculé côté service.

Profondeur hors bornes.

Media typeapplication/problem+json

Corps d’erreur conforme à la RFC 9457 (« Problem Details for HTTP APIs »), servi en application/problem+json. Les champs parametre et indice sont des extensions, que la RFC autorise.

object
detail
required

Explication propre à cette occurrence.

string
documentation
string
indice

Extension : piste de correction — valeurs admises, référentiel à consulter, ou paramètre le plus proche en cas de faute de frappe.

string
parametre

Extension : paramètre fautif, quand l’erreur en désigne un.

string
status
required
integer
title
required

Résumé lisible, stable pour un type donné.

string
type
required

URI du type de problème, relative — le client la résout contre l’URI de la requête. Elle pointe vers la section correspondante de la documentation.

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

Identifiant inconnu.

Media typeapplication/problem+json

Corps d’erreur conforme à la RFC 9457 (« Problem Details for HTTP APIs »), servi en application/problem+json. Les champs parametre et indice sont des extensions, que la RFC autorise.

object
detail
required

Explication propre à cette occurrence.

string
documentation
string
indice

Extension : piste de correction — valeurs admises, référentiel à consulter, ou paramètre le plus proche en cas de faute de frappe.

string
parametre

Extension : paramètre fautif, quand l’erreur en désigne un.

string
status
required
integer
title
required

Résumé lisible, stable pour un type donné.

string
type
required

URI du type de problème, relative — le client la résout contre l’URI de la requête. Elle pointe vers la section correspondante de la documentation.

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

Quota de débit dépassé pour l’adresse appelante. Retry-After indique le délai.

Media typeapplication/problem+json

Corps d’erreur conforme à la RFC 9457 (« Problem Details for HTTP APIs »), servi en application/problem+json. Les champs parametre et indice sont des extensions, que la RFC autorise.

object
detail
required

Explication propre à cette occurrence.

string
documentation
string
indice

Extension : piste de correction — valeurs admises, référentiel à consulter, ou paramètre le plus proche en cas de faute de frappe.

string
parametre

Extension : paramètre fautif, quand l’erreur en désigne un.

string
status
required
integer
title
required

Résumé lisible, stable pour un type donné.

string
type
required

URI du type de problème, relative — le client la résout contre l’URI de la requête. Elle pointe vers la section correspondante de la documentation.

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

Capacité de traitement simultané atteinte, délai maximal dépassé, ou données non chargées. Retry-After indique le délai.

Media typeapplication/problem+json

Corps d’erreur conforme à la RFC 9457 (« Problem Details for HTTP APIs »), servi en application/problem+json. Les champs parametre et indice sont des extensions, que la RFC autorise.

object
detail
required

Explication propre à cette occurrence.

string
documentation
string
indice

Extension : piste de correction — valeurs admises, référentiel à consulter, ou paramètre le plus proche en cas de faute de frappe.

string
parametre

Extension : paramètre fautif, quand l’erreur en désigne un.

string
status
required
integer
title
required

Résumé lisible, stable pour un type donné.

string
type
required

URI du type de problème, relative — le client la résout contre l’URI de la requête. Elle pointe vers la section correspondante de la documentation.

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