Concepts

Développer les réponses

Remplacez l’id d’un objet lié par l’objet lui-même, et incluez les champs que les listes laissent de côté.

Un lien vers un autre objet est son id. Une inscription désigne son événement par "event": "EVT-…". Avec expand[], l’API renvoie l’objet entier à sa place, dans la même requête.

Développer un champ

Envoyez expand[] avec le nom du champ. L’objet obtenu est le même que celui que renvoie sa propre opération de lecture.

Requête

curl

curl -G https://api.masterconf.com/v1/registrations/SUB-8c3e2a71-0f4b-4d6a-b5e9-27c1d9a4e612 \
  -H "Authorization: Bearer mcf_your_key" \
  --data-urlencode "expand[]=event"

JavaScript

const params = new URLSearchParams({
  "expand[]": "event",
});

const res = await fetch(`https://api.masterconf.com/v1/registrations/SUB-8c3e2a71-0f4b-4d6a-b5e9-27c1d9a4e612?${params}`, {
  headers: { Authorization: "Bearer mcf_your_key" },
});
const data = await res.json();

Python

import requests

res = requests.get(
    "https://api.masterconf.com/v1/registrations/SUB-8c3e2a71-0f4b-4d6a-b5e9-27c1d9a4e612",
    params={"expand[]": "event"},
    headers={"Authorization": "Bearer mcf_your_key"},
)
data = res.json()

Les champs que vous pouvez développer sont marqués « développable » dans la référence : l’event d’une inscription et d’un appel à communications, le call_for_papers et l’event d’une communication. Répétez le paramètre pour développer plusieurs champs.

Dans les listes et les recherches

Dans une liste ou une recherche, préfixez le champ par data., car il s’applique à chaque objet de data :

Requête

curl

curl -G https://api.masterconf.com/v1/registrations \
  -H "Authorization: Bearer mcf_your_key" \
  --data-urlencode "event=EVT-5a1f0c2e-3b7d-4e91-9c2a-1d6e8f4b7a30" \
  --data-urlencode "expand[]=data.event"

JavaScript

const params = new URLSearchParams({
  "event": "EVT-5a1f0c2e-3b7d-4e91-9c2a-1d6e8f4b7a30",
  "expand[]": "data.event",
});

const res = await fetch(`https://api.masterconf.com/v1/registrations?${params}`, {
  headers: { Authorization: "Bearer mcf_your_key" },
});
const data = await res.json();

Python

import requests

res = requests.get(
    "https://api.masterconf.com/v1/registrations",
    params={"event": "EVT-5a1f0c2e-3b7d-4e91-9c2a-1d6e8f4b7a30", "expand[]": "data.event"},
    headers={"Authorization": "Bearer mcf_your_key"},
)
data = res.json()

Chaque objet lié est lu une seule fois par page, quel que soit le nombre d’objets de la page qui le partagent.

Règles

  • Un seul niveau. Un objet développé n’est jamais développé plus loin.
  • Le droit de l’objet développé. Développer un événement demande aussi events_read. Sans lui, la requête renvoie 403 api_key_scope_missing sur expand.
  • Une page plus petite. Une liste ou une recherche avec un expand[] prend un limit d’au plus 20.
  • Un champ qui ne peut pas être développé renvoie 400 parameter_invalid sur expand.

Champs absents par défaut

Certains champs coûtent une lecture de plus par objet : les listes les laissent donc de côté. Les languages et le venue d’un événement sont toujours présents dans GET/v1/events/{id}, mais dans GET/v1/events seulement si vous les demandez :

Requête

curl

curl -G https://api.masterconf.com/v1/events \
  -H "Authorization: Bearer mcf_your_key" \
  --data-urlencode "expand[]=data.venue"

JavaScript

const params = new URLSearchParams({
  "expand[]": "data.venue",
});

const res = await fetch(`https://api.masterconf.com/v1/events?${params}`, {
  headers: { Authorization: "Bearer mcf_your_key" },
});
const data = await res.json();

Python

import requests

res = requests.get(
    "https://api.masterconf.com/v1/events",
    params={"expand[]": "data.venue"},
    headers={"Authorization": "Bearer mcf_your_key"},
)
data = res.json()

La référence marque ces champs « absent des listes par défaut ». Ne les demandez que si vous les affichez : chacun ajoute des lectures à chaque page.