Passer au contenu principal
Les champs de relation connectent une entrée CMS à une autre entrée ou à des enregistrements Plato pris en charge tels que des produits de menu et des catégories de menu.

Écrire des valeurs de relation

Relation unique :
{
  "values": {
    "category": "entry_category_1"
  }
}
Relation multiple :
{
  "values": {
    "relatedProducts": ["entry_1", "entry_2"]
  }
}
Plato valide les identifiants de relation avant de les enregistrer. Si un identifiant n’existe pas dans l’espace de travail de la clé API, la requête échoue :
{
  "message": "Invalid relation value for field 'category'."
}

Lire les ID de relation

Si vous sélectionnez un champ de relation sans champs imbriqués, Plato renvoie le ou les identifiants stockés.
?fields=id,name,category
Réponse:
{
  "id": "entry_123",
  "name": {
    "en": "Classic Burger"
  },
  "category": "entry_category_1"
}

Développer les relations

Utilisez la sélection imbriquée pour développer les entrées CMS associées.
?fields=id,name,category(id,name)
Réponse:
{
  "id": "entry_123",
  "name": {
    "en": "Classic Burger"
  },
  "category": {
    "id": "entry_category_1",
    "name": {
      "en": "Burgers"
    }
  }
}

Profondeur de la relation

maxDepth contrôle jusqu’où les relations imbriquées peuvent s’étendre.
?fields=id,name,category(id,name,parent(id,name))&maxDepth=2
La profondeur par défaut est 3. La profondeur maximale est 6. Gardez une faible profondeur pour les pages publiques.

Cibles de relation système prises en charge

Les champs de relation CMS peuvent également cibler les enregistrements Plato pris en charge. Les cibles de relations système actuellement prises en charge incluent :
  • MenuProduct
  • MenuCategory
Une fois développés, les enregistrements système renvoient :
{
  "id": "menu_product_id",
  "name": {
    "en": "Classic Burger"
  }
}