The international conference on the API Platform Framework
Learn more about the event, register for the conference, and get ready for two days of inspiration, ideas, and knowledge-sharing with our incredible lineup of renowned specialists and advocates.
Register now⚠ This class and its children offer no backward compatibility regarding positional parameters.
class ApiPlatform\Metadata\Operation
{
public __construct(null|string $shortName, null|string $class, null|bool $paginationEnabled, null|string $paginationType, null|int $paginationItemsPerPage, null|int $paginationMaximumItemsPerPage, null|bool $paginationPartial, null|bool $paginationClientEnabled, null|bool $paginationClientItemsPerPage, null|bool $paginationClientPartial, null|bool $paginationFetchJoinCollection, null|bool $paginationUseOutputWalkers, null|array $paginationViaCursor, null|array<string, string>|array<int, string> $order, null|string $description, null|array $normalizationContext, null|array $denormalizationContext, null|bool $collectDenormalizationErrors, null|string $security, null|string $securityMessage, null|string $securityPostDenormalize, null|string $securityPostDenormalizeMessage, null|string $securityPostValidation, null|string $securityPostValidationMessage, null|string $deprecationReason, null|array<int, string> $filters, null|array $validationContext, array|string|false $input, array|string|false $output, string|array|bool $mercure, string|bool $messenger, null|bool $elasticsearch, null|int $urlGenerationStrategy, null|bool $read, null|bool $deserialize, null|bool $validate, null|bool $write, null|bool $serialize, null|bool $fetchPartial, null|bool $forceEager, null|int $priority, null|string $name, string|callable $provider, string|callable $processor, null|ApiPlatform\State\OptionsInterface $stateOptions, array $extraProperties)
public withOperation($operation)
public getShortName(): string
public withShortName(null|string $shortName): ApiPlatform\Metadata\Operation
public getClass(): string
public withClass(null|string $class): ApiPlatform\Metadata\Operation
public getPaginationEnabled(): bool
public withPaginationEnabled(null|bool $paginationEnabled): ApiPlatform\Metadata\Operation
public getPaginationType(): string
public withPaginationType(null|string $paginationType): ApiPlatform\Metadata\Operation
public getPaginationItemsPerPage(): int
public withPaginationItemsPerPage(null|int $paginationItemsPerPage): ApiPlatform\Metadata\Operation
public getPaginationMaximumItemsPerPage(): int
public withPaginationMaximumItemsPerPage(null|int $paginationMaximumItemsPerPage): ApiPlatform\Metadata\Operation
public getPaginationPartial(): bool
public withPaginationPartial(null|bool $paginationPartial): ApiPlatform\Metadata\Operation
public getPaginationClientEnabled(): bool
public withPaginationClientEnabled(null|bool $paginationClientEnabled): ApiPlatform\Metadata\Operation
public getPaginationClientItemsPerPage(): bool
public withPaginationClientItemsPerPage(null|bool $paginationClientItemsPerPage): ApiPlatform\Metadata\Operation
public getPaginationClientPartial(): bool
public withPaginationClientPartial(null|bool $paginationClientPartial): ApiPlatform\Metadata\Operation
public getPaginationFetchJoinCollection(): bool
public withPaginationFetchJoinCollection(null|bool $paginationFetchJoinCollection): ApiPlatform\Metadata\Operation
public getPaginationUseOutputWalkers(): bool
public withPaginationUseOutputWalkers(null|bool $paginationUseOutputWalkers): ApiPlatform\Metadata\Operation
public getOrder(): array
public withOrder(array $order): ApiPlatform\Metadata\Operation
public getDescription(): string
public withDescription(null|string $description): ApiPlatform\Metadata\Operation
public getNormalizationContext(): array
public withNormalizationContext(array $normalizationContext): ApiPlatform\Metadata\Operation
public getDenormalizationContext(): array
public withDenormalizationContext(array $denormalizationContext): ApiPlatform\Metadata\Operation
public getCollectDenormalizationErrors(): bool
public withCollectDenormalizationErrors(null|bool $collectDenormalizationErrors): ApiPlatform\Metadata\Operation
public getSecurity(): string
public withSecurity(null|string $security): ApiPlatform\Metadata\Operation
public getSecurityMessage(): string
public withSecurityMessage(null|string $securityMessage): ApiPlatform\Metadata\Operation
public getSecurityPostDenormalize(): string
public withSecurityPostDenormalize(null|string $securityPostDenormalize): ApiPlatform\Metadata\Operation
public getSecurityPostDenormalizeMessage(): string
public withSecurityPostDenormalizeMessage(null|string $securityPostDenormalizeMessage): ApiPlatform\Metadata\Operation
public getSecurityPostValidation(): string
public withSecurityPostValidation(null|string $securityPostValidation): ApiPlatform\Metadata\Operation
public getSecurityPostValidationMessage(): string
public withSecurityPostValidationMessage(null|string $securityPostValidationMessage): ApiPlatform\Metadata\Operation
public getDeprecationReason(): string
public withDeprecationReason(null|string $deprecationReason): ApiPlatform\Metadata\Operation
public getFilters(): array
public withFilters(array $filters): ApiPlatform\Metadata\Operation
public getValidationContext(): array
public withValidationContext(array $validationContext): ApiPlatform\Metadata\Operation
public getInput()
public withInput($input): ApiPlatform\Metadata\Operation
public getOutput()
public withOutput($output): ApiPlatform\Metadata\Operation
public getMercure()
public withMercure($mercure): ApiPlatform\Metadata\Operation
public getMessenger()
public withMessenger($messenger): ApiPlatform\Metadata\Operation
public getElasticsearch(): bool
public withElasticsearch(null|bool $elasticsearch): ApiPlatform\Metadata\Operation
public getUrlGenerationStrategy(): int
public withUrlGenerationStrategy(null|int $urlGenerationStrategy): ApiPlatform\Metadata\Operation
public canRead(): bool
public withRead(bool $read): ApiPlatform\Metadata\Operation
public canDeserialize(): bool
public withDeserialize(bool $deserialize): ApiPlatform\Metadata\Operation
public canValidate(): bool
public withValidate(bool $validate): ApiPlatform\Metadata\Operation
public canWrite(): bool
public withWrite(bool $write): ApiPlatform\Metadata\Operation
public canSerialize(): bool
public withSerialize(bool $serialize): ApiPlatform\Metadata\Operation
public getFetchPartial(): bool
public withFetchPartial(null|bool $fetchPartial): ApiPlatform\Metadata\Operation
public getForceEager(): bool
public withForceEager(null|bool $forceEager): ApiPlatform\Metadata\Operation
public getPriority(): int
public withPriority(int $priority): ApiPlatform\Metadata\Operation
public getName(): string
public withName(string $name): ApiPlatform\Metadata\Operation
public getProcessor(): callable|string
public withProcessor(null|callable|string $processor): ApiPlatform\Metadata\Operation
public getProvider(): callable|string
public withProvider(null|callable|string $provider): ApiPlatform\Metadata\Operation
public getExtraProperties(): array
public withExtraProperties(array $extraProperties): ApiPlatform\Metadata\Operation
public getStateOptions(): ApiPlatform\State\OptionsInterface
public withStateOptions(null|$stateOptions): `<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation
public withResource($resource): `<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation
protected copyFrom(|`<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>` $resource): `<a href="/docs/v3.1/references/Metadata/ApiResource">ApiPlatform\Metadata\ApiResource</a>`|`<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation
}
string $shortName
string $class
bool $paginationEnabled
The paginationEnabled
option enables (or disables) the pagination for the current collection operation.
<?php
// api/src/Entity/Book.php
use ApiPlatform\Metadata\GetCollection;
#[GetCollection(paginationEnabled: true)]
class Book
{
// ...
}
# api/config/api_platform/resources.yaml
resources:
App\Entity\Book:
- operations:
ApiPlatform\Metadata\GetCollection:
paginationEnabled: true
<?xml version="1.0" encoding="UTF-8" ?>
<!-- api/config/api_platform/resources.xml -->
<resources
xmlns="https://api-platform.com/schema/metadata/resources-3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata/resources-3.0
https://api-platform.com/schema/metadata/resources-3.0.xsd">
<resource class="App\Entity\Book">
<operations>
<operation class="ApiPlatform\Metadata\GetCollection" paginationEnabled=true />
</operations>
</resource>
</resources>
string $paginationType
The paginationType
option defines the type of pagination (page
or cursor
) to use for the current collection operation.
<?php
// api/src/Entity/Book.php
use ApiPlatform\Metadata\GetCollection;
#[GetCollection(paginationType: 'page')]
class Book
{
// ...
}
# api/config/api_platform/resources.yaml
resources:
App\Entity\Book:
- operations:
ApiPlatform\Metadata\GetCollection:
paginationType: page
<?xml version="1.0" encoding="UTF-8" ?>
<!-- api/config/api_platform/resources.xml -->
<resources
xmlns="https://api-platform.com/schema/metadata/resources-3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata/resources-3.0
https://api-platform.com/schema/metadata/resources-3.0.xsd">
<resource class="App\Entity\Book">
<operations>
<operation class="ApiPlatform\Metadata\GetCollection" paginationType="page" />
</operations>
</resource>
</resources>
int $paginationItemsPerPage
The paginationItemsPerPage
option defines the number of items per page for the current collection operation.
<?php
// api/src/Entity/Book.php
use ApiPlatform\Metadata\GetCollection;
#[GetCollection(paginationItemsPerPage: 30)]
class Book
{
// ...
}
# api/config/api_platform/resources.yaml
resources:
App\Entity\Book:
- operations:
ApiPlatform\Metadata\GetCollection:
paginationItemsPerPage: 30
<?xml version="1.0" encoding="UTF-8" ?>
<!-- api/config/api_platform/resources.xml -->
<resources
xmlns="https://api-platform.com/schema/metadata/resources-3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata/resources-3.0
https://api-platform.com/schema/metadata/resources-3.0.xsd">
<resource class="App\Entity\Book">
<operations>
<operation class="ApiPlatform\Metadata\GetCollection" paginationItemsPerPage=30 />
</operations>
</resource>
</resources>
int $paginationMaximumItemsPerPage
The paginationMaximumItemsPerPage
option defines the maximum number of items per page for the current resource.
<?php
// api/src/Entity/Book.php
use ApiPlatform\Metadata\GetCollection;
#[GetCollection(paginationMaximumItemsPerPage: 50)]
class Book
{
// ...
}
# api/config/api_platform/resources.yaml
resources:
App\Entity\Book:
- operations:
ApiPlatform\Metadata\GetCollection:
paginationMaximumItemsPerPage: 50
<?xml version="1.0" encoding="UTF-8" ?>
<!-- api/config/api_platform/resources.xml -->
<resources
xmlns="https://api-platform.com/schema/metadata/resources-3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata/resources-3.0
https://api-platform.com/schema/metadata/resources-3.0.xsd">
<resource class="App\Entity\Book">
<operations>
<operation class="ApiPlatform\Metadata\GetCollection" paginationMaximumItemsPerPage=50 />
</operations>
</resource>
</resources>
bool $paginationPartial
The paginationPartial
option enables (or disables) the partial pagination for the current collection operation.
<?php
// api/src/Entity/Book.php
use ApiPlatform\Metadata\GetCollection;
#[GetCollection(paginationPartial: true)]
class Book
{
// ...
}
# api/config/api_platform/resources.yaml
resources:
App\Entity\Book:
- operations:
ApiPlatform\Metadata\GetCollection:
paginationPartial: true
<?xml version="1.0" encoding="UTF-8" ?>
<!-- api/config/api_platform/resources.xml -->
<resources
xmlns="https://api-platform.com/schema/metadata/resources-3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata/resources-3.0
https://api-platform.com/schema/metadata/resources-3.0.xsd">
<resource class="App\Entity\Book">
<operations>
<operation class="ApiPlatform\Metadata\GetCollection" paginationPartial=true />
</operations>
</resource>
</resources>
bool $paginationClientEnabled
The paginationClientEnabled
option allows (or disallows) the client to enable (or disable) the pagination for the current collection operation.
<?php
// api/src/Entity/Book.php
use ApiPlatform\Metadata\GetCollection;
#[GetCollection(paginationClientEnabled: true)]
class Book
{
// ...
}
# api/config/api_platform/resources.yaml
resources:
App\Entity\Book:
- operations:
ApiPlatform\Metadata\GetCollection:
paginationClientEnabled: true
<?xml version="1.0" encoding="UTF-8" ?>
<!-- api/config/api_platform/resources.xml -->
<resources
xmlns="https://api-platform.com/schema/metadata/resources-3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata/resources-3.0
https://api-platform.com/schema/metadata/resources-3.0.xsd">
<resource class="App\Entity\Book">
<operations>
<operation class="ApiPlatform\Metadata\GetCollection" paginationClientEnabled=true />
</operations>
</resource>
</resources>
The pagination can now be enabled (or disabled) by adding a query parameter named pagination
:
GET /books?pagination=false
: disabledGET /books?pagination=true
: enabledbool $paginationClientItemsPerPage
The paginationClientItemsPerPage
option allows (or disallows) the client to set the number of items per page for the current collection operation.
<?php
// api/src/Entity/Book.php
use ApiPlatform\Metadata\GetCollection;
#[GetCollection(paginationClientItemsPerPage: true)]
class Book
{
// ...
}
# api/config/api_platform/resources.yaml
resources:
App\Entity\Book:
- operations:
ApiPlatform\Metadata\GetCollection:
paginationClientItemsPerPage: true
<?xml version="1.0" encoding="UTF-8" ?>
<!-- api/config/api_platform/resources.xml -->
<resources
xmlns="https://api-platform.com/schema/metadata/resources-3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata/resources-3.0
https://api-platform.com/schema/metadata/resources-3.0.xsd">
<resource class="App\Entity\Book">
<operations>
<operation class="ApiPlatform\Metadata\GetCollection" paginationClientItemsPerPage=true />
</operations>
</resource>
</resources>
The number of items can now be set by adding a query parameter named itemsPerPage
:
GET /books?itemsPerPage=50
bool $paginationClientPartial
The paginationClientPartial
option allows (or disallows) the client to enable (or disable) the partial pagination for the current collection operation.
<?php
// api/src/Entity/Book.php
use ApiPlatform\Metadata\GetCollection;
#[GetCollection(paginationClientPartial: true)]
class Book
{
// ...
}
# api/config/api_platform/resources.yaml
resources:
App\Entity\Book:
- operations:
ApiPlatform\Metadata\GetCollection:
paginationClientPartial: true
<?xml version="1.0" encoding="UTF-8" ?>
<!-- api/config/api_platform/resources.xml -->
<resources
xmlns="https://api-platform.com/schema/metadata/resources-3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata/resources-3.0
https://api-platform.com/schema/metadata/resources-3.0.xsd">
<resource class="App\Entity\Book">
<operations>
<operation class="ApiPlatform\Metadata\GetCollection" paginationClientPartial=true />
</operations>
</resource>
</resources>
The partial pagination can now be enabled (or disabled) by adding a query parameter named partial
:
GET /books?partial=false
: disabledGET /books?partial=true
: enabledbool $paginationFetchJoinCollection
The PaginationExtension of API Platform performs some checks on the QueryBuilder
to guess, in most common
cases, the correct values to use when configuring the Doctrine ORM Paginator: $fetchJoinCollection
argument, whether there is a join to a collection-valued association.
When set to true
, the Doctrine ORM Paginator will perform an additional query, in order to get the
correct number of results. You can configure this using the paginationFetchJoinCollection
option:
<?php
// api/src/Entity/Book.php
use ApiPlatform\Metadata\GetCollection;
#[GetCollection(paginationFetchJoinCollection: false)]
class Book
{
// ...
}
# api/config/api_platform/resources.yaml
resources:
App\Entity\Book:
- operations:
ApiPlatform\Metadata\GetCollection:
paginationFetchJoinCollection: false
<?xml version="1.0" encoding="UTF-8" ?>
<!-- api/config/api_platform/resources.xml -->
<resources
xmlns="https://api-platform.com/schema/metadata/resources-3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata/resources-3.0
https://api-platform.com/schema/metadata/resources-3.0.xsd">
<resource class="App\Entity\Book">
<operations>
<operation class="ApiPlatform\Metadata\GetCollection" paginationFetchJoinCollection=false />
</operations>
</resource>
</resources>
For more information, please see the Pagination entry in the Doctrine ORM documentation.
bool $paginationUseOutputWalkers
The PaginationExtension of API Platform performs some checks on the QueryBuilder
to guess, in most common
cases, the correct values to use when configuring the Doctrine ORM Paginator: $setUseOutputWalkers
setter,
whether to use output walkers.
When set to true
, the Doctrine ORM Paginator will use output walkers, which are compulsory for some types
of queries. You can configure this using the paginationUseOutputWalkers
option:
<?php
// api/src/Entity/Book.php
use ApiPlatform\Metadata\GetCollection;
#[GetCollection(paginationUseOutputWalkers: false)]
class Book
{
// ...
}
# api/config/api_platform/resources.yaml
resources:
App\Entity\Book:
- operations:
ApiPlatform\Metadata\GetCollection:
paginationUseOutputWalkers: false
<?xml version="1.0" encoding="UTF-8" ?>
<!-- api/config/api_platform/resources.xml -->
<resources
xmlns="https://api-platform.com/schema/metadata/resources-3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata/resources-3.0
https://api-platform.com/schema/metadata/resources-3.0.xsd">
<resource class="App\Entity\Book">
<operations>
<operation class="ApiPlatform\Metadata\GetCollection" paginationUseOutputWalkers=false />
</operations>
</resource>
</resources>
For more information, please see the Pagination entry in the Doctrine ORM documentation.
array $paginationViaCursor
The paginationViaCursor
option configures the cursor-based pagination for the current resource.
Select your unique sorted field as well as the direction you’ll like the pagination to go via filters.
Note that for now you have to declare a RangeFilter
and an OrderFilter
on the property used for the cursor-based pagination:.
<?php
// api/src/Entity/Book.php
use ApiPlatform\Metadata\ApiFilter;
use ApiPlatform\Metadata\GetCollection;
use ApiPlatform\Doctrine\Odm\Filter\OrderFilter;
use ApiPlatform\Doctrine\Odm\Filter\RangeFilter;
#[GetCollection(paginationPartial: true, paginationViaCursor: [['field' => 'id', 'direction' => 'DESC']])]
#[ApiFilter(RangeFilter::class, properties: ["id"])]
#[ApiFilter(OrderFilter::class, properties: ["id" => "DESC"])]
class Book
{
// ...
}
# api/config/api_platform/resources.yaml
resources:
App\Entity\Book:
- operations:
ApiPlatform\Metadata\GetCollection:
paginationPartial: true
paginationViaCursor:
- { field: 'id', direction: 'DESC' }
filters: [ 'app.filters.book.range', 'app.filters.book.order' ]
<?xml version="1.0" encoding="UTF-8" ?>
<!-- api/config/api_platform/resources.xml -->
<resources
xmlns="https://api-platform.com/schema/metadata/resources-3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata/resources-3.0
https://api-platform.com/schema/metadata/resources-3.0.xsd">
<resource class="App\Entity\Book">
<operations>
<operation class="ApiPlatform\Metadata\GetCollection" paginationPartial=true>
<filters>
<filter>app.filters.book.range</filter>
<filter>app.filters.book.order</filter>
</filters>
<paginationViaCursor>
<paginationField field="id" direction="DESC" />
</paginationViaCursor>
</operation>
</operations>
</resource>
</resources>
To know more about cursor-based pagination take a look at this blog post on medium (draft).
array $order
string $description
array $normalizationContext
array $denormalizationContext
bool $collectDenormalizationErrors
string $security
string $securityMessage
string $securityPostDenormalize
string $securityPostDenormalizeMessage
string $securityPostValidation
string $securityPostValidationMessage
string $deprecationReason
The deprecationReason
option deprecates the current operation with a deprecation message.
<?php
// api/src/Entity/Parchment.php
use ApiPlatform\Metadata\Get;
#[Get(deprecationReason: 'Create a Book instead')]
class Parchment
{
// ...
}
# api/config/api_platform/resources.yaml
resources:
App\Entity\Parchment:
- operations:
ApiPlatform\Metadata\Get:
deprecationReason: 'Create a Book instead'
<?xml version="1.0" encoding="UTF-8" ?>
<!-- api/config/api_platform/resources.xml -->
<resources
xmlns="https://api-platform.com/schema/metadata/resources-3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata/resources-3.0
https://api-platform.com/schema/metadata/resources-3.0.xsd">
<resource class="App\Entity\Parchment">
<operations>
<operation class="ApiPlatform\Metadata\Get" deprecationReason="Create a Book instead" />
<operations>
</resource>
</resources>
owl:deprecated
annotation property will be added to the appropriate data structuredeprecated
property will be addedisDeprecated
and deprecationReason
properties will be added to the schemaarray $filters
The filters
option configures the filters (declared as services) available on the collection routes for the current resource.
<?php
// api/src/Entity/Book.php
use ApiPlatform\Metadata\GetCollection;
#[GetCollection(filters: ['app.filters.book.search'])]
class Book
{
// ...
}
# api/config/api_platform/resources.yaml
resources:
App\Entity\Book:
- operations:
ApiPlatform\Metadata\GetCollection:
filters: ['app.filters.book.search']
<?xml version="1.0" encoding="UTF-8" ?>
<!-- api/config/api_platform/resources.xml -->
<resources
xmlns="https://api-platform.com/schema/metadata/resources-3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata/resources-3.0
https://api-platform.com/schema/metadata/resources-3.0.xsd">
<resource class="App\Entity\Book">
<operations>
<operation class="ApiPlatform\Metadata\GetCollection">
<filters>
<filter>app.filters.book.search</filter>
</filters>
</operation>
</operations>
</resource>
</resources>
array $validationContext
The validationContext
option configure the context of validation for the current Operation.
You can, for instance, describe the validation groups that will be used :.
#[Put(validationContext: ['groups' => ['Default', 'putValidation']])]
#[Post(validationContext: ['groups' => ['Default', 'postValidation']])]
For more examples, read our guide on validation.
$input
$output
$mercure
string|bool $messenger
The messenger
option dispatches the current resource through the Message Bus.
<?php
// api/src/Entity/Book.php
use ApiPlatform\Metadata\Post;
#[Post(messenger: true)]
class Book
{
// ...
}
# api/config/api_platform/resources.yaml
resources:
App\Entity\Book:
- operations:
ApiPlatform\Metadata\Post:
messenger: true
<?xml version="1.0" encoding="UTF-8" ?>
<!-- api/config/api_platform/resources.xml -->
<resources
xmlns="https://api-platform.com/schema/metadata/resources-3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://api-platform.com/schema/metadata/resources-3.0
https://api-platform.com/schema/metadata/resources-3.0.xsd">
<resource class="App\Entity\Book">
<operations>
<operation class="ApiPlatform\Metadata\Post" messenger=true />
</operations>
</resource>
</resources>
Note: when using messenger=true
on a Doctrine entity, the Doctrine Processor is not called. If you want it
to be called, you should decorate a built-in state processor
and implement your own logic.
Read how to use Messenger with an Input object.
bool $elasticsearch
int $urlGenerationStrategy
bool $read
bool $deserialize
bool $validate
bool $write
bool $serialize
bool $fetchPartial
bool $forceEager
int $priority
string $name
$provider
$processor
ApiPlatform\State\OptionsInterface $stateOptions
array $extraProperties
public __construct(null|string $shortName, null|string $class, null|bool $paginationEnabled, null|string $paginationType, null|int $paginationItemsPerPage, null|int $paginationMaximumItemsPerPage, null|bool $paginationPartial, null|bool $paginationClientEnabled, null|bool $paginationClientItemsPerPage, null|bool $paginationClientPartial, null|bool $paginationFetchJoinCollection, null|bool $paginationUseOutputWalkers, null|array $paginationViaCursor, null|array<string, string>|array<int, string> $order, null|string $description, null|array $normalizationContext, null|array $denormalizationContext, null|bool $collectDenormalizationErrors, null|string $security, null|string $securityMessage, null|string $securityPostDenormalize, null|string $securityPostDenormalizeMessage, null|string $securityPostValidation, null|string $securityPostValidationMessage, null|string $deprecationReason, null|array<int, string> $filters, null|array $validationContext, array|string|false $input, array|string|false $output, string|array|bool $mercure, string|bool $messenger, null|bool $elasticsearch, null|int $urlGenerationStrategy, null|bool $read, null|bool $deserialize, null|bool $validate, null|bool $write, null|bool $serialize, null|bool $fetchPartial, null|bool $forceEager, null|int $priority, null|string $name, string|callable $provider, string|callable $processor, null|ApiPlatform\State\OptionsInterface $stateOptions, array $extraProperties)
shortName | string | |
class | string | |
paginationEnabled | bool | https://api-platform.com/docs/core/pagination/#for-a-specific-resource |
paginationType | string | https://api-platform.com/docs/core/graphql/#using-the-page-based-pagination |
paginationItemsPerPage | int | https://api-platform.com/docs/core/pagination/#changing-the-number-of-items-per-page |
paginationMaximumItemsPerPage | int | https://api-platform.com/docs/core/pagination/#changing-maximum-items-per-page |
paginationPartial | bool | https://api-platform.com/docs/core/performance/#partial-pagination |
paginationClientEnabled | bool | https://api-platform.com/docs/core/pagination/#for-a-specific-resource-1 |
paginationClientItemsPerPage | bool | https://api-platform.com/docs/core/pagination/#for-a-specific-resource-3 |
paginationClientPartial | bool | https://api-platform.com/docs/core/pagination/#for-a-specific-resource-6 |
paginationFetchJoinCollection | bool | https://api-platform.com/docs/core/pagination/#controlling-the-behavior-of-the-doctrine-orm-paginator |
paginationUseOutputWalkers | bool | |
paginationViaCursor | array | |
order | array<string, string> array<int, string> | https://api-platform.com/docs/core/default-order/#overriding-default-order |
description | string | |
normalizationContext | array | |
denormalizationContext | array | |
collectDenormalizationErrors | bool | |
security | string | https://api-platform.com/docs/core/security |
securityMessage | string | https://api-platform.com/docs/core/security/#configuring-the-access-control-error-message |
securityPostDenormalize | string | https://api-platform.com/docs/core/security/#executing-access-control-rules-after-denormalization |
securityPostDenormalizeMessage | string | https://api-platform.com/docs/core/security/#configuring-the-access-control-error-message |
securityPostValidation | string | |
securityPostValidationMessage | string | |
deprecationReason | string | https://api-platform.com/docs/core/deprecations/#deprecating-resource-classes-operations-and-properties |
filters | array<int, string> | https://api-platform.com/docs/core/filters/#doctrine-orm-and-mongodb-odm-filters |
validationContext | array | |
input | array string false | https://api-platform.com/docs/core/dto/#specifying-an-input-or-an-output-data-representation |
output | array string false | https://api-platform.com/docs/core/dto/#specifying-an-input-or-an-output-data-representation |
mercure | string array bool | https://api-platform.com/docs/core/mercure |
messenger | string bool | https://api-platform.com/docs/core/messenger/#dispatching-a-resource-through-the-message-bus |
elasticsearch | bool | https://api-platform.com/docs/core/elasticsearch/ |
urlGenerationStrategy | int | |
read | bool | https://api-platform.com/docs/core/events/#the-event-system |
deserialize | bool | https://api-platform.com/docs/core/events/#the-event-system |
validate | bool | https://api-platform.com/docs/core/events/#the-event-system |
write | bool | https://api-platform.com/docs/core/events/#the-event-system |
serialize | bool | https://api-platform.com/docs/core/events/#the-event-system |
fetchPartial | bool | https://api-platform.com/docs/core/performance/#fetch-partial |
forceEager | bool | https://api-platform.com/docs/core/performance/#force-eager |
priority | int | |
name | string | |
provider | string callable | https://api-platform.com/docs/core/state-providers/#state-providers |
processor | string callable | https://api-platform.com/docs/core/state-processors/#state-processors |
stateOptions | `ApiPlatform\State\OptionsInterface` | |
extraProperties | array |
public withOperation($operation)
operation |
public getShortName(): string
string
public withShortName(null|string $shortName): ApiPlatform\Metadata\Operation
shortName | string |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getClass(): string
string
public withClass(null|string $class): ApiPlatform\Metadata\Operation
class | string |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getPaginationEnabled(): bool
bool
public withPaginationEnabled(null|bool $paginationEnabled): ApiPlatform\Metadata\Operation
paginationEnabled | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getPaginationType(): string
string
public withPaginationType(null|string $paginationType): ApiPlatform\Metadata\Operation
paginationType | string |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getPaginationItemsPerPage(): int
int
public withPaginationItemsPerPage(null|int $paginationItemsPerPage): ApiPlatform\Metadata\Operation
paginationItemsPerPage | int |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getPaginationMaximumItemsPerPage(): int
int
public withPaginationMaximumItemsPerPage(null|int $paginationMaximumItemsPerPage): ApiPlatform\Metadata\Operation
paginationMaximumItemsPerPage | int |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getPaginationPartial(): bool
bool
public withPaginationPartial(null|bool $paginationPartial): ApiPlatform\Metadata\Operation
paginationPartial | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getPaginationClientEnabled(): bool
bool
public withPaginationClientEnabled(null|bool $paginationClientEnabled): ApiPlatform\Metadata\Operation
paginationClientEnabled | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getPaginationClientItemsPerPage(): bool
bool
public withPaginationClientItemsPerPage(null|bool $paginationClientItemsPerPage): ApiPlatform\Metadata\Operation
paginationClientItemsPerPage | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getPaginationClientPartial(): bool
bool
public withPaginationClientPartial(null|bool $paginationClientPartial): ApiPlatform\Metadata\Operation
paginationClientPartial | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getPaginationFetchJoinCollection(): bool
bool
public withPaginationFetchJoinCollection(null|bool $paginationFetchJoinCollection): ApiPlatform\Metadata\Operation
paginationFetchJoinCollection | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getPaginationUseOutputWalkers(): bool
bool
public withPaginationUseOutputWalkers(null|bool $paginationUseOutputWalkers): ApiPlatform\Metadata\Operation
paginationUseOutputWalkers | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getOrder(): array
array
public withOrder(array $order): ApiPlatform\Metadata\Operation
order | array |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getDescription(): string
string
public withDescription(null|string $description): ApiPlatform\Metadata\Operation
description | string |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getNormalizationContext(): array
array
public withNormalizationContext(array $normalizationContext): ApiPlatform\Metadata\Operation
normalizationContext | array |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getDenormalizationContext(): array
array
public withDenormalizationContext(array $denormalizationContext): ApiPlatform\Metadata\Operation
denormalizationContext | array |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getCollectDenormalizationErrors(): bool
bool
public withCollectDenormalizationErrors(null|bool $collectDenormalizationErrors): ApiPlatform\Metadata\Operation
collectDenormalizationErrors | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getSecurity(): string
string
public withSecurity(null|string $security): ApiPlatform\Metadata\Operation
security | string |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getSecurityMessage(): string
string
public withSecurityMessage(null|string $securityMessage): ApiPlatform\Metadata\Operation
securityMessage | string |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getSecurityPostDenormalize(): string
string
public withSecurityPostDenormalize(null|string $securityPostDenormalize): ApiPlatform\Metadata\Operation
securityPostDenormalize | string |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getSecurityPostDenormalizeMessage(): string
string
public withSecurityPostDenormalizeMessage(null|string $securityPostDenormalizeMessage): ApiPlatform\Metadata\Operation
securityPostDenormalizeMessage | string |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getSecurityPostValidation(): string
string
public withSecurityPostValidation(null|string $securityPostValidation): ApiPlatform\Metadata\Operation
securityPostValidation | string |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getSecurityPostValidationMessage(): string
string
public withSecurityPostValidationMessage(null|string $securityPostValidationMessage): ApiPlatform\Metadata\Operation
securityPostValidationMessage | string |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getDeprecationReason(): string
string
public withDeprecationReason(null|string $deprecationReason): ApiPlatform\Metadata\Operation
deprecationReason | string |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getFilters(): array
array
public withFilters(array $filters): ApiPlatform\Metadata\Operation
filters | array |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getValidationContext(): array
array
public withValidationContext(array $validationContext): ApiPlatform\Metadata\Operation
validationContext | array |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getInput()
public withInput($input): ApiPlatform\Metadata\Operation
input |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getOutput()
public withOutput($output): ApiPlatform\Metadata\Operation
output |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getMercure()
public withMercure($mercure): ApiPlatform\Metadata\Operation
mercure |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getMessenger()
public withMessenger($messenger): ApiPlatform\Metadata\Operation
messenger |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getElasticsearch(): bool
bool
public withElasticsearch(null|bool $elasticsearch): ApiPlatform\Metadata\Operation
elasticsearch | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getUrlGenerationStrategy(): int
int
public withUrlGenerationStrategy(null|int $urlGenerationStrategy): ApiPlatform\Metadata\Operation
urlGenerationStrategy | int |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public canRead(): bool
bool
public withRead(bool $read): ApiPlatform\Metadata\Operation
read | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public canDeserialize(): bool
bool
public withDeserialize(bool $deserialize): ApiPlatform\Metadata\Operation
deserialize | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public canValidate(): bool
bool
public withValidate(bool $validate): ApiPlatform\Metadata\Operation
validate | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public canWrite(): bool
bool
public withWrite(bool $write): ApiPlatform\Metadata\Operation
write | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public canSerialize(): bool
bool
public withSerialize(bool $serialize): ApiPlatform\Metadata\Operation
serialize | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getFetchPartial(): bool
bool
public withFetchPartial(null|bool $fetchPartial): ApiPlatform\Metadata\Operation
fetchPartial | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getForceEager(): bool
bool
public withForceEager(null|bool $forceEager): ApiPlatform\Metadata\Operation
forceEager | bool |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getPriority(): int
int
public withPriority(int $priority): ApiPlatform\Metadata\Operation
priority | int |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getName(): string
string
public withName(string $name): ApiPlatform\Metadata\Operation
name | string |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getProcessor(): callable|string
callable
string
public withProcessor(null|callable|string $processor): ApiPlatform\Metadata\Operation
processor | callable string |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getProvider(): callable|string
callable
string
public withProvider(null|callable|string $provider): ApiPlatform\Metadata\Operation
provider | callable string |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getExtraProperties(): array
array
public withExtraProperties(array $extraProperties): ApiPlatform\Metadata\Operation
extraProperties | array |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public getStateOptions(): ApiPlatform\State\OptionsInterface
<a href="/docs/v3.1/references/State/OptionsInterface">ApiPlatform\State\OptionsInterface</a>
public withStateOptions(null|$stateOptions): `<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation
stateOptions | `ApiPlatform\State\OptionsInterface` |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
public withResource($resource): `<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation
resource | `ApiPlatform\Metadata\ApiResource` |
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
protected copyFrom(|`<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>` $resource): `<a href="/docs/v3.1/references/Metadata/ApiResource">ApiPlatform\Metadata\ApiResource</a>`|`<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation
resource | `ApiPlatform\Metadata\ApiResource` `ApiPlatform\Metadata\Operation` |
<a href="/docs/v3.1/references/Metadata/ApiResource">ApiPlatform\Metadata\ApiResource</a>
<a href="/docs/v3.1/references/Metadata/Operation">ApiPlatform\Metadata\Operation</a>
Made with love by
Les-Tilleuls.coop can help you design and develop your APIs and web projects, and train your teams in API Platform, Symfony, Next.js, Kubernetes and a wide range of other technologies.
Learn more