Как перевести аннотацию для версии 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 ], )]