实体在 swagger UI api 平台中不可见

Entity not visible in swagger UI api platform

我使用 Api 平台和 Symfony (5.4) + php 7.2.5

我自己创建了一个实体,我只是在 /src/Entity 中添加了一个文件,但它不起作用。

我刷新,我清除了缓存,我添加了@Api资源...但是实体在API平台的文档页面中不可见。

你知道错误在哪里吗? 谢谢!

这是我用于新实体的代码:

// api/src/Entity/Review.php

namespace App\Entity;

use ApiPlatform\Core\Annotation\ApiResource;

/** A review of a book. */
/** 
* @ApiResource()
*/
class Review
{
    /** The id of this review. */
    private ?int $id = null;

    /** The rating of this review (between 0 and 5). */
    public int $rating = 0;

    /** The body of the review. */
    public string $body = '';

    /** The author of the review. */
    public string $author = '';

    /** The date of publication of this review.*/
    public ?\DateTimeInterface $publicationDate = null;

    /** The book this review is about. */
    public ?Book $book = null;

    public function getId(): ?int
    {
        return $this->id;
    }
}

我认为你应该删除你的实体并用 cmd 重新制作它:

php bin/console make:entity

这将在实体文件夹中生成一个 Rewiew.php 文件,其中包含 getter 和 setter 以及正确的注释示例:

 /**
 * @ORM\Column(type="string", length=100, nullable=true)
 */

和存储库文件等。 不要忘记使用 :

php bin/console make:migration

和:

php bin/console doctrine:migrations:migrate

用于更新您的数据库。并且不要忘记使用 apiplatform 注释。 我认为实际上由于缺少信息,捆绑包无法知道如何使用您的实体