Как перевести аннотацию для версии 2 API Platform в атрибуты для версии 3, когда речь идет об операциях для отдельных элементов?
В API Platform 3 версии функционал itemOperations был заменен на операции через атрибуты.
Для перевода аннотации в атрибуты версии 2 API Platform в версию 3, когда речь идет об операциях для отдельных элементов, необходимо использовать атрибуты @ApiProperty и @ApiSubresource. Например, если в версии 2 была аннотация @Get(itemOperations={
"get"={"method"="GET", "path"="/items/{id}"},
"put"={"method"="PUT", "path"="/items/{id}"},
})
то в версии 3 это можно перевести следующим образом:
```php
/**
* @ApiProperty(
* attributes={
* "get"={"method"="GET", "path"="/items/{id}"},
* "put"={"method"="PUT", "path"="/items/{id}"}
* }
* )
*/
```
Таким образом, используя атрибуты @ApiProperty и @ApiSubresource, можно перевести функционал операций для отдельных элементов из версии 2 в версию 3 API Platform.
Сам ещё не ставил третью версию, но одним глазом посмотрел документацию, и вроде как они тупо по названию классов в аргументе options ориентируются. В принципе, это логично, если подумать. Но не очевидно.
#[ApiResource( operations: [ new Get(), // item new Put(), // item new Patch(), // item new Delete(), // item new GetCollection(), // collection new Post() // collection ], )]