Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы{{tag>[php api-platform symfony]}} ====== API Platform ====== * [[Операции / Operations]] * [[Расширения ORM / Extension]] * [[Фильтры / Filters]] * [[Сортировка / Overriding]] * [[Проверка / Validation]] * [[Serialization Process]] * [[Event System]] * [[FOSRestBundle]] * [[State Providers]] - адаптеры для пользовательских уровней сохраняемости, виртуальных полей, пользовательской гидратации * [[The Serialization/Deserialization Process]] - объекты постобработки, созданные на основе полезной нагрузки, отправленной в теле HTTP-запроса * [[user]] * [[Security]] - пользовательская логика авторизации * [[Validation]] - пользовательская логика проверки * [[State Processors]] - настраиваемая бизнес-логика и вычисления для запуска до или после сохранения (например, почта, вызов внешнего API ...) * [[The Normalization/Denormalization Process]] - настройка ресурса, отправляемого клиенту (добавление полей в документы JSON, кодирование кодов, дат ...) * [[Filters]] - создавайте фильтры для коллекций и автоматически документируйте их (OpenAPI, GraphQL, Hydra) * [[Serializer Context Builders]] - Динамическое изменение контекста сериализации (например, групп) * [[Messenger Handlers]] - создавайте 100% пользовательские, RPC, асинхронные, сервис-ориентированные конечные точки (следует использовать вместо пользовательских контроллеров, поскольку интеграция messenger совместима как с REST, так и с GraphQL, в то время как пользовательские контроллеры работают только с REST) * [[DTOs and Data]] - используйте определенный класс для представления структуры входных или выходных данных, связанных с операцией * [[Kernel Events]] - настройте HTTP-запрос или ответ (только REST, по возможности следует предпочесть другие точки расширения) ===== Версии ===== == версии 2.6 == <code php> <?php // api/src/Entity/Book.php namespace App\Entity; use ApiPlatform\Core\Annotation\ApiResource; #[ApiResource( iri: 'https://schema.org/Book', itemOperations: [ 'get', 'post_publication' => [ 'method' => 'POST', 'path' => '/books/{id}/publication', ], ]) ] class Book { // ... } </code> == версии 2.7 == <code php> <?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 { // ... } </code> ====== Symfony / API Platform ====== {{topic>[symfony]}}СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal