
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.