Ste*_*efa 2 domain-driven-design
如何使用强类型语言(如Java或C#)中的RCF6902 JSON PATCH规范在DDD应用程序中执行HTTP PATCH .条件不是违反DDD,所有内容都是强类型的,并且实体是不可变的吗?
该意图RFC6902与该DDD方法不完全兼容.这RFC用于定义用于改变CRUD样式中对象的协议,而不是DDD样式.DDD使用普遍存在的语言关注商业行为,而CRUD则关注数据.
如果您真的想要,可以使用RFC6902应用程序的命令端(也称为写入端).每个PATCH请求都将映射到一个或多个命令,这些命令将发送到由URLRequest请求标识的单个聚合.此外,只有add操作才有意义,如add and process a new command.对于某些命令,remove操作可能有意义,但这更奇怪.
因此,请求可能如下所示:
PATCH /orders/1234/change/item/quantity HTTP/1.1
Host: example.org
Content-Length: 326
Content-Type: application/json-patch+json
[
{ "op": "add", "path": "/item/456", "value": 3 }
]
Run Code Online (Sandbox Code Playgroud)
该请求将设置quantity到3了item与id等于456在order与id相生相123.
我再说一遍,RFC6902没有意义DDD.