Tu veux créer une API REST Symfony moderne, rapide, bien documentée et sécurisée ? Ce tutoriel complet t’explique comment utiliser API Platform, un framework puissant basé sur Symfony. De l’installation à la documentation en passant par la sécurité et le versioning, tu auras toutes les clés pour réussir.

👉 Pour une API ultra-performante, pense aussi à améliorer la vitesse de ton application Symfony.

Qu’est-ce qu’API Platform ?

API Platform est un framework open-source conçu pour faciliter la création d’APIs REST Symfony. Il repose sur les entités Doctrine pour générer automatiquement des endpoints (CRUD), gérer les filtres, la pagination, la validation, et bien plus encore. Il respecte les standards REST, JSON-LD, et prend aussi en charge GraphQL.


Pourquoi utiliser API Platform ?

Créer une API REST Symfony avec API Platform, c’est :

  • Gagner du temps grâce à la génération automatique des endpoints.
  • Bénéficier d’une documentation Swagger UI à jour en temps réel.
  • Gérer plusieurs formats : JSON, XML, CSV, HAL, JSON-LD…
  • Protéger ton API avec le système de sécurité Symfony.
  • Ajouter facilement GraphQL si besoin.

Découvre aussi les bonnes pratiques pour sécuriser une application Symfony.

Étape 1 – Installer API Platform

Commence par installer le bundle via Composer :

composer require api

Cela installe aussi les dépendances liées à la sérialisation, validation, documentation…
Une fois l’installation terminée, accède à l’interface Swagger UI via :

/api

Étape 2 – Créer une ressource API Symfony

Une API REST Symfony se base sur les entités. Voici un exemple :

use ApiPlatform\Metadata\ApiResource;
use Doctrine\ORM\Mapping as ORM;

#[ORM\Entity]
#[ApiResource]
class Product
{
#[ORM\Id, ORM\GeneratedValue, ORM\Column]
private ?int $id = null;

#[ORM\Column(length: 255)]
private string $name;

#[ORM\Column]
private float $price;
}

API Platform génère automatiquement les routes suivantes :

  • GET /api/products
  • GET /api/products/{id}
  • POST /api/products
  • PUT /api/products/{id}
  • DELETE /api/products/{id}

Étape 3 – Configurer les opérations, filtres et pagination

Tu peux personnaliser les opérations disponibles et ajouter des règles de sécurité :

#[ApiResource(
operations: [
new Get(),
new Post(security: "is_granted('ROLE_ADMIN')"),
new Put(),
new Delete(security: "is_granted('ROLE_ADMIN')")
]
)]

Pour ajouter des filtres :

composer require api/filter

Active ensuite search_filter, order_filter, etc. directement dans les annotations ou config.


Étape 4 – Sécuriser l’API avec JWT ou OAuth2

Créer une API REST Symfony sécurisée est essentiel. Deux options populaires :

🔐 Authentification JWT

composer require lexik/jwt-authentication-bundle

Configure les clés SSH, le firewall et protège les routes avec IS_AUTHENTICATED_FULLY.
👉 Retrouve nos bonnes pratiques pour sécuriser Symfony.

🔐 Authentification OAuth2

Tu peux utiliser Keycloak ou un bundle Symfony dédié pour centraliser la gestion des utilisateurs.

Besoin de logique personnalisée ? Voici comment rediriger un utilisateur selon son rôle dans Symfony.

Étape 5 – Gérer le versioning de ton API

API Platform permet de versionner les endpoints facilement, sans casser les intégrations existantes :

#[ApiResource(normalizationContext: ['groups' => ['product:read:v1']])]

Il suffit ensuite d’utiliser différents groupes pour v1, v2, etc.

Étape 6 – Générer automatiquement la documentation

Swagger UI est générée automatiquement à /api. Elle permet de :

  • Visualiser les endpoints disponibles.
  • Tester les appels dans le navigateur.
  • Voir les schémas JSON attendus.

Pratique pour tes utilisateurs ou ton équipe.


Aller plus loin avec API Platform

Avec API Platform, tu peux aussi :

  • Générer une API GraphQL.
  • Gérer les relations entre entités.
  • Créer des data providers personnalisés.
  • Ajouter des validations avancées avec Symfony Validator.

Tu veux en savoir plus sur le framework ? Lis pourquoi choisir Symfony pour ton projet web.

Conclusion

API Platform transforme la façon de créer une API REST Symfony : gain de temps, sécurité, documentation, versioning… C’est un outil moderne et puissant pour tout développeur back-end.

🚀 Tu veux développer une API Symfony sur mesure, rapide et sécurisée ?
Découvre les avantages de Comeback Design pour tes projets web ou contacte-moi pour en discuter.