Modèle de contenu
Vue d’ensemble
Le modèle de contenu de Fatplant est conçu pour les médias numériques modernes. Il couvre les formats éditoriaux courants tout en restant extensible via les plugins.
Toutes les entités sont exposées via l’API Platform (JSON:API) et accessibles à l’adresse /api/public/* pour les ressources publiques.
Articles
L’article est l’entité centrale de Fatplant. Il représente un contenu textuel principal : actualité, reportage, analyse, interview.
Champs principaux :
| Champ | Type | Description |
|---|---|---|
title | string | Titre de l’article |
slug | string | Identifiant URL unique |
content | JSON | Contenu du page builder (sections/rangées/colonnes/modules) |
excerpt | text | Chapô / résumé |
publishedAt | datetime | Date de publication |
status | enum | draft ou published |
author | User | Auteur principal |
categories | Category[] | Catégories associées |
tags | Tag[] | Tags libres |
seo | SEO | Méta titre, description, image OG |
Dossiers
Un dossier regroupe plusieurs articles autour d’un sujet ou d’un événement. Il dispose d’une page dédiée et peut être mis en avant en page d’accueil.
Champs principaux :
title,slug,descriptionarticles: liste ordonnée d’articles associéscoverImage: image de couverturestatus:draftoupublishedseo
Les dossiers permettent de créer des récits longs sur plusieurs jours ou semaines (ex : élections, crise climatique, saison sportive).
Pages
Les pages sont des contenus autonomes construits entièrement avec le page builder visuel. Elles ne font pas partie du flux éditorial (pas de date de publication, pas de catégories) mais peuvent être publiées comme pages statiques du site.
Exemples d’usage : page À propos, Mentions légales, Page d’accueil personnalisée.
Champs principaux :
title,slugcontent: document JSON du page builderlayout: layout de rendu associéstatus
Podcasts
L’entité podcast représente une émission audio. Elle peut contenir plusieurs épisodes.
Champs principaux :
title,slug,descriptioncoverImageepisodes: liste d’épisodes (titre, audio, durée, date)rssUrl: URL du flux RSS généré automatiquement
Lives
L’entité live permet de couvrir un événement en temps réel avec un flux de mises à jour chronologiques.
Champs principaux :
title,slugstatus:scheduled,live,endedupdates: liste ordonnée de mises à jour (texte, auteur, heure)startAt,endAt
Catégories
Les catégories sont des classifications hiérarchiques. Elles structurent le contenu du média (ex : Politique, Sport, Culture).
Champs :
title,slugparent: catégorie parente (optionnel)description,seo
Tags
Les tags sont des labels libres associés aux articles. Ils permettent une navigation transversale non hiérarchique.
Champs :
title,slug
Statuts éditoriaux
Toutes les entités publiables (Article, Dossier, Page, Podcast) partagent un champ status :
| Statut | Visibilité API publique | Description |
|---|---|---|
draft | Non | En cours de rédaction |
published | Oui | Visible par tous |
Les brouillons ne sont accessibles que via l’API privée (authentifiée).
Champs SEO
Chaque entité publiable dispose d’un objet seo embarqué :
{
"seo": {
"metaTitle": "Mon article - Mon Média",
"metaDescription": "Description courte pour les moteurs de recherche.",
"ogImage": "/uploads/og-mon-article.jpg",
"noIndex": false
}
} Ces champs sont utilisés par le frontend SSR pour générer les balises <meta> et <link> appropriées.
Accès API
# Liste des articles publiés
GET /api/public/articles
# Un article par slug
GET /api/public/articles?slug=mon-article
# Dossiers publiés
GET /api/public/dossiers
# Catégories
GET /api/public/categories Voir la documentation API pour la liste complète des endpoints et les paramètres de filtrage.