具有api平台的六边形架构

时间:2019-12-16 08:41:50

标签: api-platform.com hexagonal-architecture

我将使用api-platform创建一个api,并且希望将业务逻辑与框架分开。

例如,我想允许用户注册新帐户,POST: /user对此非常有用。 api平台正在做所有的魔术(处理程序请求,验证数据,保存新用户(原则),返回响应)。但是我的业务逻辑希望在创建新用户期间发送邀请电子邮件并进行其他操作。我该怎么做才能与api平台兼容?

我应该在用例POST: /register的内部调用中创建自定义操作register($user)吗?我是否应该创建自定义存储库接口并在save(User)实施调用POST: /user内部?

或者我应该使用event system并将“大”用例(register)拆分为小用例,取决于我的业务逻辑需要做什么(验证数据,发送邀请电子邮件等)。 )?如果我想从CLI注册新用户,我的命令必须使用所有这些小的用例?

还是我应该完全忘记所有api平台的魔力,如果我的业务逻辑比CRUD多,我必须自己照顾一切(验证数据,保存到DB,发送电子邮件等)?

1 个答案:

答案 0 :(得分:0)

自定义业务逻辑https://api-platform.com/docs/core/extending/的位置。

添加业务逻辑的重点是Data Persisters。我可以在那里使用自己的Repository保存用户,发送电子邮件等。