"Example values" 的列表中未显示导入类型的必需值

Required values of imported type don't show in list of "Example values"

我想知道我省略了什么,这样 Swagger 就不会在示例值列表中公开类型为 Misd\PhoneNumberBundle\Doctrine\DBAL\Types\PhoneNumberType 的 public 对象值? POST 对象时的示例值如下,尽管有另一个 public 对象值:

The Swagger interface showing example values

[
  {
    "username": "string",
    "password": "string",
    "id": 0
  }
]

我可以手动添加该字段并且一切正常(值已发布),但它并不理想,因为文档未列出所需的值。

  /**
   * @AssertPhoneNumber(defaultRegion="US", message="Please specify a valid mobile phone number", type="mobile")
   * @Assert\NotBlank
   * @ORM\Column(name="phone_number", type="phone_number", unique=true)
   */
  public $phoneNumber;

我错过了什么?期待得到这方面的提示,提前谢谢你。

将 ApiProperty 指定为注释解决了我的问题。只需 use ApiPlatform\Core\Annotation\ApiProperty 并注释 phone 数字 属性 如下:

  /**
   * @ApiProperty(
   *     attributes={
   *         "swagger_context"={
   *             "type"="string"
   *         }
   *     }
   * )
   * @AssertPhoneNumber(defaultRegion="US", message="Please specify a valid mobile phone number", type="mobile")
   * @Assert\NotBlank
   * @ORM\Column(name="phone_number", type="phone_number", unique=true)
   */
  public $phoneNumber;