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 nowclass ApiPlatform\Metadata\HttpOperation extends ApiPlatform\Metadata\Operation
{
public __construct(string $method, null|string $uriTemplate, null|array<int, string> $types, array<int|string, string|array<int, string>>|string $formats, array<int|string, string|array<int, string>>|string $inputFormats, array<int|string, string|array<int, string>>|string $outputFormats, array<string, array|array|>|array<int, string>|string $uriVariables, null|string $routePrefix, null|string $routeName, null|array $defaults, null|array $requirements, null|array $options, null|bool $stateless, null|string $sunset, null|string $acceptPatch, string|int $status, null|string $host, null|array $schemes, null|string $condition, null|string $controller, null|array $cacheHeaders, null|array $paginationViaCursor, null|array $hydraContext, null|array $openapiContext, null|`<a href="/docs/v3.1/references/OpenApi/Model/Operation">ApiPlatform\OpenApi\Model\Operation</a>`|bool $openapi, null|array $exceptionToStatus, null|bool $queryParameterValidationEnabled, 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 $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 $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|`<a href="/docs/v3.1/references/State/OptionsInterface">ApiPlatform\State\OptionsInterface $stateOptions, array $extraProperties)
public getMethod(): string
public withMethod(string $method): ApiPlatform\Metadata\HttpOperation
public getUriTemplate(): string
public withUriTemplate(null|string $uriTemplate)
public getTypes(): array
public withTypes(array<int, string>|string $types): ApiPlatform\Metadata\HttpOperation
public getFormats()
public withFormats($formats): ApiPlatform\Metadata\HttpOperation
public getInputFormats()
public withInputFormats($inputFormats): ApiPlatform\Metadata\HttpOperation
public getOutputFormats()
public withOutputFormats($outputFormats): ApiPlatform\Metadata\HttpOperation
public getUriVariables()
public withUriVariables($uriVariables): ApiPlatform\Metadata\HttpOperation
public getRoutePrefix(): string
public withRoutePrefix(string $routePrefix): ApiPlatform\Metadata\HttpOperation
public getRouteName(): string
public withRouteName(null|string $routeName): ApiPlatform\Metadata\HttpOperation
public getDefaults(): array
public withDefaults(array $defaults): ApiPlatform\Metadata\HttpOperation
public getRequirements(): array
public withRequirements(array $requirements): ApiPlatform\Metadata\HttpOperation
public getOptions(): array
public withOptions(array $options): ApiPlatform\Metadata\HttpOperation
public getStateless(): bool
public withStateless($stateless): ApiPlatform\Metadata\HttpOperation
public getSunset(): string
public withSunset(string $sunset): ApiPlatform\Metadata\HttpOperation
public getAcceptPatch(): string
public withAcceptPatch(string $acceptPatch): ApiPlatform\Metadata\HttpOperation
public getStatus(): int
public withStatus(int $status): ApiPlatform\Metadata\HttpOperation
public getHost(): string
public withHost(string $host): ApiPlatform\Metadata\HttpOperation
public getSchemes(): array
public withSchemes(array $schemes): ApiPlatform\Metadata\HttpOperation
public getCondition(): string
public withCondition(string $condition): ApiPlatform\Metadata\HttpOperation
public getController(): string
public withController(string $controller): ApiPlatform\Metadata\HttpOperation
public getCacheHeaders(): array
public withCacheHeaders(array $cacheHeaders): ApiPlatform\Metadata\HttpOperation
public getPaginationViaCursor(): array
public withPaginationViaCursor(array $paginationViaCursor): ApiPlatform\Metadata\HttpOperation
public getHydraContext(): array
public withHydraContext(array $hydraContext): ApiPlatform\Metadata\HttpOperation
public getOpenapiContext(): array
public withOpenapiContext(array $openapiContext): ApiPlatform\Metadata\HttpOperation
public getOpenapi(): ApiPlatform\OpenApi\Model\Operation|bool
public withOpenapi(|bool $openapi): `<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation
public getExceptionToStatus(): array
public withExceptionToStatus(array $exceptionToStatus): ApiPlatform\Metadata\HttpOperation
public getQueryParameterValidationEnabled(): bool
public withQueryParameterValidationEnabled(bool $queryParameterValidationEnabled): ApiPlatform\Metadata\HttpOperation
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 $method
string $uriTemplate
array $types
$formats
$inputFormats
$outputFormats
$uriVariables
string $routePrefix
string $routeName
array $defaults
array $requirements
array $options
bool $stateless
string $sunset
The sunset
option indicates when a deprecated operation will be removed.
<?php
// api/src/Entity/Parchment.php
use ApiPlatform\Metadata\Get;
#[Get(deprecationReason: 'Create a Book instead', sunset: '01/01/2020')]
class Parchment
{
// ...
}
# api/config/api_platform/resources.yaml
resources:
App\Entity\Parchment:
- operations:
ApiPlatform\Metadata\Get:
deprecationReason: 'Create a Book instead'
sunset: '01/01/2020'
<?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" sunset="01/01/2020" />
<operations>
</resource>
</resources>
string $acceptPatch
$status
string $host
array $schemes
string $condition
string $controller
array $cacheHeaders
array $paginationViaCursor
array $hydraContext
array $openapiContext
ApiPlatform\OpenApi\Model\Operation|bool $openapi
array $exceptionToStatus
bool $queryParameterValidationEnabled
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 $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(string $method, null|string $uriTemplate, null|array<int, string> $types, array<int|string, string|array<int, string>>|string $formats, array<int|string, string|array<int, string>>|string $inputFormats, array<int|string, string|array<int, string>>|string $outputFormats, array<string, array|array|>|array<int, string>|string $uriVariables, null|string $routePrefix, null|string $routeName, null|array $defaults, null|array $requirements, null|array $options, null|bool $stateless, null|string $sunset, null|string $acceptPatch, string|int $status, null|string $host, null|array $schemes, null|string $condition, null|string $controller, null|array $cacheHeaders, null|array $paginationViaCursor, null|array $hydraContext, null|array $openapiContext, null|`<a href="/docs/v3.1/references/OpenApi/Model/Operation">ApiPlatform\OpenApi\Model\Operation</a>`|bool $openapi, null|array $exceptionToStatus, null|bool $queryParameterValidationEnabled, 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 $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 $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|`<a href="/docs/v3.1/references/State/OptionsInterface">ApiPlatform\State\OptionsInterface $stateOptions, array $extraProperties)
method | string | |
uriTemplate | string | |
types | array<int, string> | the RDF types of this property |
formats | array<int
string, string
array<int, string>> string | https://api-platform.com/docs/core/content-negotiation/#configuring-formats-for-a-specific-resource-or-operation |
inputFormats | array<int
string, string
array<int, string>> string | https://api-platform.com/docs/core/content-negotiation/#configuring-formats-for-a-specific-resource-or-operation |
outputFormats | array<int
string, string
array<int, string>> string | https://api-platform.com/docs/core/content-negotiation/#configuring-formats-for-a-specific-resource-or-operation |
uriVariables | array<string, array
array
`ApiPlatform\Metadata\Link`> array<int, string> string | https://api-platform.com/docs/core/subresources/ |
routePrefix | string | https://api-platform.com/docs/core/operations/#prefixing-all-routes-of-all-operations |
routeName | string | |
defaults | array | |
requirements | array | |
options | array | |
stateless | bool | |
sunset | string | https://api-platform.com/docs/core/deprecations/#setting-the-sunset-http-header-to-indicate-when-a-resource-or-an-operation-will-be-removed |
acceptPatch | string | |
status | string int | https://api-platform.com/docs/core/operations/#configuring-operations |
host | string | |
schemes | array | |
condition | string | |
controller | string | |
cacheHeaders | array | https://api-platform.com/docs/core/performance/#setting-custom-http-cache-headers |
paginationViaCursor | array | https://api-platform.com/docs/core/pagination/#cursor-based-pagination |
hydraContext | array | https://api-platform.com/docs/core/extending-jsonld-context/#hydra |
openapiContext | array | https://api-platform.com/docs/core/openapi/#using-the-openapi-and-swagger-contexts |
openapi | `ApiPlatform\OpenApi\Model\Operation` bool | |
exceptionToStatus | array | |
queryParameterValidationEnabled | bool | |
shortName | string | |
class | string | |
paginationEnabled | bool | |
paginationType | string | |
paginationItemsPerPage | int | |
paginationMaximumItemsPerPage | int | |
paginationPartial | bool | |
paginationClientEnabled | bool | |
paginationClientItemsPerPage | bool | |
paginationClientPartial | bool | |
paginationFetchJoinCollection | bool | |
paginationUseOutputWalkers | bool | |
order | array | |
description | string | |
normalizationContext | array | https://api-platform.com/docs/core/serialization/#using-serialization-groups |
denormalizationContext | array | https://api-platform.com/docs/core/serialization/#using-serialization-groups |
collectDenormalizationErrors | bool | |
security | string | |
securityMessage | string | |
securityPostDenormalize | string | |
securityPostDenormalizeMessage | string | |
securityPostValidation | string | |
securityPostValidationMessage | string | |
deprecationReason | string | |
filters | array | |
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 | |
urlGenerationStrategy | int | |
read | bool | |
deserialize | bool | |
validate | bool | |
write | bool | |
serialize | bool | |
fetchPartial | bool | |
forceEager | bool | |
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 getMethod(): string
string
public withMethod(string $method): ApiPlatform\Metadata\HttpOperation
method | string |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getUriTemplate(): string
string
public withUriTemplate(null|string $uriTemplate)
uriTemplate | string |
public getTypes(): array
array
public withTypes(array<int, string>|string $types): ApiPlatform\Metadata\HttpOperation
types | array<int, string> string |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getFormats()
public withFormats($formats): ApiPlatform\Metadata\HttpOperation
formats |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getInputFormats()
public withInputFormats($inputFormats): ApiPlatform\Metadata\HttpOperation
inputFormats |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getOutputFormats()
public withOutputFormats($outputFormats): ApiPlatform\Metadata\HttpOperation
outputFormats |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getUriVariables()
public withUriVariables($uriVariables): ApiPlatform\Metadata\HttpOperation
uriVariables |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getRoutePrefix(): string
string
public withRoutePrefix(string $routePrefix): ApiPlatform\Metadata\HttpOperation
routePrefix | string |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getRouteName(): string
string
public withRouteName(null|string $routeName): ApiPlatform\Metadata\HttpOperation
routeName | string |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getDefaults(): array
array
public withDefaults(array $defaults): ApiPlatform\Metadata\HttpOperation
defaults | array |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getRequirements(): array
array
public withRequirements(array $requirements): ApiPlatform\Metadata\HttpOperation
requirements | array |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getOptions(): array
array
public withOptions(array $options): ApiPlatform\Metadata\HttpOperation
options | array |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getStateless(): bool
bool
public withStateless($stateless): ApiPlatform\Metadata\HttpOperation
stateless |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getSunset(): string
string
public withSunset(string $sunset): ApiPlatform\Metadata\HttpOperation
sunset | string |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getAcceptPatch(): string
string
public withAcceptPatch(string $acceptPatch): ApiPlatform\Metadata\HttpOperation
acceptPatch | string |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getStatus(): int
int
public withStatus(int $status): ApiPlatform\Metadata\HttpOperation
status | int |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getHost(): string
string
public withHost(string $host): ApiPlatform\Metadata\HttpOperation
host | string |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getSchemes(): array
array
public withSchemes(array $schemes): ApiPlatform\Metadata\HttpOperation
schemes | array |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getCondition(): string
string
public withCondition(string $condition): ApiPlatform\Metadata\HttpOperation
condition | string |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getController(): string
string
public withController(string $controller): ApiPlatform\Metadata\HttpOperation
controller | string |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getCacheHeaders(): array
array
public withCacheHeaders(array $cacheHeaders): ApiPlatform\Metadata\HttpOperation
cacheHeaders | array |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getPaginationViaCursor(): array
array
public withPaginationViaCursor(array $paginationViaCursor): ApiPlatform\Metadata\HttpOperation
paginationViaCursor | array |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getHydraContext(): array
array
public withHydraContext(array $hydraContext): ApiPlatform\Metadata\HttpOperation
hydraContext | array |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getOpenapiContext(): array
array
public withOpenapiContext(array $openapiContext): ApiPlatform\Metadata\HttpOperation
openapiContext | array |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getOpenapi(): ApiPlatform\OpenApi\Model\Operation|bool
<a href="/docs/v3.1/references/OpenApi/Model/Operation">ApiPlatform\OpenApi\Model\Operation</a>
bool
public withOpenapi(|bool $openapi): `<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation
openapi | `ApiPlatform\OpenApi\Model\Operation` bool |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getExceptionToStatus(): array
array
public withExceptionToStatus(array $exceptionToStatus): ApiPlatform\Metadata\HttpOperation
exceptionToStatus | array |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</a>
public getQueryParameterValidationEnabled(): bool
bool
public withQueryParameterValidationEnabled(bool $queryParameterValidationEnabled): ApiPlatform\Metadata\HttpOperation
queryParameterValidationEnabled | bool |
<a href="/docs/v3.1/references/Metadata/HttpOperation">ApiPlatform\Metadata\HttpOperation</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