我正在使用Api Platform和DTO。我想知道是否有可能只在POST中有一个字段,而不在PUT中。在我的用例中,我有一个客户需要一个电子邮件字段,所以该字段应该在GET和POST中存在。无论如何,电子邮件不应该被更改,所以该字段不应该在PUT中存在。这是定义我的资源的YAML文件:
App\Entity\Customer:
attributes:
input: 'App\DTO\CustomerInput'
output: 'App\DTO\CustomerOutput'
collectionOperations:
get:
path: /customer
post:
path: /customer
itemOperations:
get:
path: /customer/{fiscalId}
put:
path: /customer/{fiscalId}
这是输入DTO:
class CustomerInput
{
public string $fiscalId;
public string $email;
public string $businessName;
}
我遇到的主要问题是在Open API文档中没有将email字段作为POST的有效输入字段公开。
1条答案
按热度按时间am46iovg1#
首先,我认为您应该指定您使用的api平台版本,因为在版本2.6和2.7之间处理DTO的方式发生了变化。因此,如果您使用的是2.6或更低版本,您可以为每个操作指定自定义输入和输出,如下所示(Api平台文档):