Verified against Semitexa Ultimate 2026.09.19.1020
Api attributes
Every attribute declared by Api, with the signature the code has and a usage quoted from the codebase.
#[ApiVersion]
Semitexa\Api\Attribute\ApiVersion
Applies to: class
| parameter | type | required |
|---|---|---|
version |
string |
yes |
deprecatedSince |
string |
no |
sunsetDate |
string |
no |
#[ApiVersion(version: '1.0.0')]
final class ProductDetailPayload
— vendor/semitexa/demo/resources/examples/Api/Rest/ProductDetailPayload.example.php
#[CollectionFilterOptions]
Semitexa\Api\Attribute\CollectionFilterOptions
Applies to: class
| parameter | type | required |
|---|---|---|
fields |
array |
yes |
#[CollectionFilterOptions(['name'])]
#[CollectionPaginated(mode: 'auto', defaultPerPage: 5, perPageOptions: [5, 10, 25], maxPerPage: 25, countThreshold: 10)]
final class AutoModeCollectionResponse
— vendor/semitexa/api/tests/Fixtures/Collection/AutoModeCollectionResponse.php
#[CollectionFilterable]
Semitexa\Api\Attribute\CollectionFilterable
Applies to: class
| parameter | type | required |
|---|---|---|
fields |
array |
yes |
#[CollectionFilterable(['name' => ['eq', 'contains'], 'id' => ['eq', 'in']])]
#[CollectionSearchable(fields: ['name'])]
#[CollectionFilterOptions(['name'])]
#[CollectionPaginated(mode: 'auto', defaultPerPage: 5, perPageOptions: [5, 10, 25], maxPerPage: 25, countThreshold: 10)]
final class AutoModeCollectionResponse
— vendor/semitexa/api/tests/Fixtures/Collection/AutoModeCollectionResponse.php
#[CollectionPaginated]
Semitexa\Api\Attribute\CollectionPaginated
Applies to: class
| parameter | type | required |
|---|---|---|
mode |
string |
no |
defaultPerPage |
int |
no |
perPageOptions |
array |
no |
maxPerPage |
int |
no |
countThreshold |
int |
no |
#[CollectionPaginated(mode: 'auto', defaultPerPage: 5, perPageOptions: [5, 10, 25], maxPerPage: 25, countThreshold: 10)]
final class AutoModeCollectionResponse
— vendor/semitexa/api/tests/Fixtures/Collection/AutoModeCollectionResponse.php
#[CollectionSearchable]
Semitexa\Api\Attribute\CollectionSearchable
Applies to: class
| parameter | type | required |
|---|---|---|
fields |
array |
yes |
param |
string |
no |
#[CollectionSearchable(fields: ['name'])]
#[CollectionFilterOptions(['name'])]
#[CollectionPaginated(mode: 'auto', defaultPerPage: 5, perPageOptions: [5, 10, 25], maxPerPage: 25, countThreshold: 10)]
final class AutoModeCollectionResponse
— vendor/semitexa/api/tests/Fixtures/Collection/AutoModeCollectionResponse.php
#[CollectionSortable]
Semitexa\Api\Attribute\CollectionSortable
Applies to: class
| parameter | type | required |
|---|---|---|
fields |
array |
yes |
#[CollectionSortable(['name', 'id'])]
#[CollectionFilterable(['name' => ['eq', 'contains'], 'id' => ['eq', 'in']])]
#[CollectionSearchable(fields: ['name'])]
#[CollectionFilterOptions(['name'])]
#[CollectionPaginated(mode: 'auto', defaultPerPage: 5, perPageOptions: [5, 10, 25], maxPerPage: 25, countThreshold: 10)]
final class AutoModeCollectionResponse
— vendor/semitexa/api/tests/Fixtures/Collection/AutoModeCollectionResponse.php
#[ExternalApi]
Semitexa\Api\Attribute\ExternalApi
Applies to: class
| parameter | type | required |
|---|---|---|
version |
string |
no |
description |
string |
no |
#[ExternalApi]
#[AsPublicPayload(
path: '/api/demo/errors/{scenario}',
methods: ['GET'],
responseWith: ErrorEnvelopeResource::class,
produces: ['application/json'],
)]
final class ApiErrorTriggerPayload
— vendor/semitexa/demo/resources/examples/Api/Errors/ApiErrorTriggerPayload.example.php
#[ProducesResourceCollection]
Semitexa\Api\Attribute\ProducesResourceCollection
Applies to: class
| parameter | type | required |
|---|---|---|
resourceClass |
string |
yes |
description |
string |
no |
#[ProducesResourceCollection(CustomerResource::class)]
#[CollectionSortable(['name', 'id'])]
#[CollectionFilterable(['name' => ['eq', 'contains'], 'id' => ['eq', 'in']])]
#[CollectionSearchable(fields: ['name'])]
#[CollectionFilterOptions(['name'])]
#[CollectionPaginated(mode: 'auto', defaultPerPage: 5, perPageOptions: [5, 10, 25], maxPerPage: 25, countThreshold: 10)]
final class AutoModeCollectionResponse
— vendor/semitexa/api/tests/Fixtures/Collection/AutoModeCollectionResponse.php
#[ProducesResourceObject]
Semitexa\Api\Attribute\ProducesResourceObject
Applies to: class
| parameter | type | required |
|---|---|---|
resourceClass |
string |
yes |
description |
string |
no |
#[ProducesResourceObject(CustomerResource::class, description: 'GraphQL view of a customer.')]
final class CustomerGraphqlResponse
— vendor/semitexa/api/tests/Fixtures/Customer/CustomerGraphqlResponse.php