API PlatformでのNo operations defined in spec!問題

エンティティをApiPlatform\Metadata\ApiResourceでアノテーション定義しても、エンティティがAPIとして使用定義されなかった。ApiPlatform\Core\Annotation\ApiResourceだと定義される。

定義されていないままだと、当然API Platform Adminでは以下のようなエラーになってしまう。

Unhandled Runtime Error

Error: Resource users not present inside API description

原因は3.0からデフォルトで無効になるmetadata_backward_compatibility_layerが2.7では有効のままになっているため。

設定を以下のように定義することで修正可能。

# api/config/packages/api_platform.yaml
api_platform:
    metadata_backward_compatibility_layer: false

公式ドキュメントはUpgrade Guideにあります。