Операции / Operations

<?php
// api/src/Entity/Book.php
namespace App\Entity;
 
use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\Get;
use ApiPlatform\Metadata\Post;
use App\Controller\CreateBookPublication;
 
#[ApiResource(types: ['https://schema.org/Book'], operations: [
    new Get(),
    new Post(name: 'publication', uriTemplate: '/books/{id}/publication')
])]
class Book
{
    // ...
}
#[ApiResource(
    shortName: 'User',
    description: 'Utilisateurs',
    operations: [
        new Get(),
        new GetCollection(),
        new Post(),
        new Put(),
        new Patch(),
        new Delete(),
    ],
    normalizationContext: [
        'groups' => ['user:read'],
    ],
    denormalizationContext: [
        'groups' => ['user:write'],
    ],
    security: "is_granted('ROLE_USER')"
)]

2.7 ApiPlatform\Metadata\ApiResource вместо 2.6 ApiPlatform\Core\Annotation\ApiResource

Перед После
iri: 'https://schema.org/Book' types: ['https://schema.org/Book']
path: '/books/{id}/publication'
identifiers: [] uriVariables: []
attributes: [] extraProperties: []
attributes: ['validation_groups' ⇒ ['a', 'b']] validationContext: ['groups' ⇒ ['a', 'b']]

2.7 ApiPlatform\Metadata\ApiProperty вместо 2.6 ApiPlatform\Core\Annotation\ApiProperty

Перед После
iri: 'https://schema.org/Book' types: ['https://schema.org/Book']
type: 'string' builtinTypes: ['string']

Symfony / API Platform