Php 如何在Api平台上使用DTO和Messenger?
对于我们的资源之一,我们希望通过命令处理程序路由请求。为这个资源创建一个新项目有很多副作用和优先要求,所以定期休息是不够的 由于我们已经编写了一个用于应用程序不同部分的Messenger处理程序和一个简单的命令对象,因此我们考虑将Messenger与输入对象一起使用,如下所示: 将Php 如何在Api平台上使用DTO和Messenger?,php,symfony,api-platform.com,Php,Symfony,Api Platform.com,对于我们的资源之一,我们希望通过命令处理程序路由请求。为这个资源创建一个新项目有很多副作用和优先要求,所以定期休息是不够的 由于我们已经编写了一个用于应用程序不同部分的Messenger处理程序和一个简单的命令对象,因此我们考虑将Messenger与输入对象一起使用,如下所示: 将messenger属性设置为input,API平台将自动将给定的输入作为消息而不是资源发送。实际上,它将添加一个默认的DataTransformer(参见输入/输出文档),用于处理给定的输入 我的资源是这样描述的: A
messenger
属性设置为input
,API平台将自动将给定的输入作为消息而不是资源发送。实际上,它将添加一个默认的DataTransformer
(参见输入/输出文档),用于处理给定的输入
我的资源是这样描述的:
App\Domain\Entity\Bid:
input: 'App\Application\Command\Lead\BidOnLead'
messenger: "input"
itemOperations:
get: ~
collectionOperations:
get: ~
post: ~
但是,当我加载api文档时,显示为输入的模式是App\Domain\Entity\Bid
的模式,而不是我所期望的App\Application\Command\Lead\BidOnLead
的模式
如果只是文档生成不正确的问题,我尝试发送一个描述输入对象的JSON(这是一个非常简单的对象,有几个属性),但是失败了,因为它试图反序列化到资源对象,而不是输入对象
我做错了什么,如何实现这一点?我还没有测试过,但根据这里的文档:
输入
应位于属性下
键:
App\Domain\Entity\Bid:
attributes:
input: 'App\Application\Command\Lead\BidOnLead'
messenger: "input"
itemOperations:
get: ~
collectionOperations:
get: ~
post: ~
如果您只是将注释中的内容复制到yaml,这可能会产生误导,因为在APIL平台中,yaml的文档并不完整。Hi,您找到解决方案了吗?