Skip to Content
SymfonyPartie 11 — ⭐ API Platform & API headless pour Next.jsVue d'ensemble de la partie

Partie 11 — ⭐ API Platform & API headless pour Next.js

Public : BookLab a un modèle (Partie 6), une validation (Partie 9) et une sécurité (Partie 10). C’est le moment du cœur premium : exposer BookLab en API et la consommer depuis Next.js. Objectif de la partie : maîtriser API Platform — transformer une entité en API REST complète avec un attribut, contrôler la sérialisation, les filtres, la validation, la sécurité (JWT + voters), la documentation (OpenAPI) et le CORS — puis brancher un front Next.js dessus (fetch, JWT, RSC/SSR, revalidation).

Pourquoi cette partie est LA raison d’être du cours

Un développeur qui sait faire un backend Symfony robuste ET un front Next.js qui le consomme est rare et bien payé (Partie 17). Cette partie construit exactement ce pont : l’API BookLab d’un côté, le front Next.js de l’autre, avec l’authentification JWT (Partie 10) qui les relie.

Ce que vous saurez faire à la fin de cette partie

  • Exposer une entité en API REST complète avec #[ApiResource] (CRUD, pagination, doc auto).
  • Contrôler finement ce qui entre/sort avec les groupes de sérialisation et des DTO.
  • Ajouter filtres, tri, pagination, validation et erreurs normalisées.
  • Sécuriser chaque opération (JWT, security, voters).
  • Générer et lire la documentation OpenAPI/Swagger, gérer le versioning et le CORS.
  • (Option) Exposer aussi en GraphQL.
  • Consommer l’API depuis Next.js : fetch typé, auth JWT (cookie httpOnly), Server Components, revalidation.

Chapitres de cette partie

  1. Concepts & première resource — API Platform, #[ApiResource], formats (JSON-LD/Hydra), CRUD automatique.
  2. Sérialisation — groupes normalizationContext/denormalizationContext, DTO d’entrée/sortie, exposer le juste nécessaire.
  3. Filtres, pagination & tri — SearchFilter, OrderFilter, RangeFilter, pagination, filtres custom.
  4. Validation & erreurs — contraintes réutilisées, réponses d’erreur normalisées (RFC 7807), 422.
  5. Sécurité de l’APIsecurity par opération, JWT, voters, filtrage par utilisateur.
  6. OpenAPI, versioning & CORS — Swagger UI, personnaliser la doc, versionner, configurer NelmioCORS.
  7. GraphQL — exposer BookLab en GraphQL (queries/mutations), consommer côté Next.js.
  8. Consommer l’API dans Next.js ⭐ — fetch, JWT (cookie httpOnly), RSC/SSR, mutations, revalidation, types.

Prochain chapitre : 11.1 — Concepts & première resource.