logo api platform

Installation.

Installer Symfony skeleton.

composer create-project symfony/skeleton nomDuProjet

Se positionner dans le dossier.

cd nomDuProjet

Installer le bundle API Platforme.

composer require api

Configurer le .env et céer la base de données.

bin/console doctrine:database:create
bin/console doctrine:schema:create

Initialiser l’api ressource dans chaque entités.

use ApiPlatform\Core\Annotation\ApiResource;
// puis l'atribut php8 (annotation(
#[ApiResource]

Ne pas oublier d’importer la classe ApiRessource.

use ApiPlatform\Core\Annotation\ApiResource;

Lancer le serveur PHP.

php -S 127.0.0.1:8000 -t public
// ou
bin/console server:start
Se connecter à API Platform depuis un navigateur.

https://localhost/api/

La sérialisation

Les contextes de normalisation.
<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use App\Repository\PostRepository;
use ApiPlatform\Core\Annotation\ApiResource;

/**
 * @ORM\Entity(repositoryClass=PostRepository::class)
 */
#[ApiResource(
    normalizationContext: ['groups' => ['read:collection']]
)]
class Post
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;

/**
* @ORM\Column(type="string", length=255)
*/
#[Groups(['read:collection'])]
private $title;

/**
* @ORM\Column(type="string", length=255)
*/
#[Groups(['read:collection'])]
private $slug;

/**
* @ORM\Column(type="text")
*/
#[Groups(['read:collection'])]
private $content;

/**
* @ORM\Column(type="datetime")
*/
private $createdAt;
Limiter les items.

Ici on limite les opérations seulement à la méthode GET ( ne donne plus accès à PUT, DELETE et PATCH)

/**
 * @ORM\Entity(repositoryClass=PostRepository::class)
 */
#[ApiResource(
    itemOperations:[
        'get'
    ]
)]

Les contraintes de validation.

Publications similaires