我如何注释作为值对象的属性,以便 API 平台为 swagger 文档生成其字段? [英] How can I annotate my attribute which is Value Object in order that API Platform would generate its fields for swagger documentation?

查看:19
本文介绍了我如何注释作为值对象的属性,以便 API 平台为 swagger 文档生成其字段?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个名为 Station 的实体.

I have an Entity called Station.

这个实体有一个名为 attributes 的属性,它是 StationAttributes 值对象.

This entity has a property called attributes which is StationAttributes value object.

我尝试将属性设置为 StationAttributes:

I try to set the property to be StationAttributes:

/**
* @var StationAttributes
* @ORM\Column(name="attributes", type="station_attributes", nullable=true)
*/
private $attributes;

但是,API 平台会生成如下所示的 Station 模型:

However, the API Platform generates Station model that looks like this:

{
...
"attributes": "string"
}

我希望它是这样的:

{
...
"attributes": {
    "field": true,
    "field2": "value2",
  }
}

我怎样才能做到这一点?

How can I achieve this?

推荐答案

我继续将 StationAttributes 注册为 ApiResource/Model,然后我将 swagger 上下文添加到属性属性.

I went ahead and registered StationAttributes as ApiResource/Model and then I've added swagger context to attributes property.

/**
 * @var StationAttributes
 *
 * @ApiProperty(
 *     attributes={
 *         "swagger_context"={
 *              "$ref"="#/definitions/StationAttributes"
 *          }
 *     }
 * )
 *
 * @ORM\Column(name="attributes", type="station_attributes", nullable=true)
 */
private $attributes;

这篇关于我如何注释作为值对象的属性,以便 API 平台为 swagger 文档生成其字段?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆