gpt4 book ai didi

domain-driven-design - 如何使用强类型语言通过域驱动设计执行 HTTP PATCH?

转载 作者:行者123 更新时间:2023-12-04 08:22:39 25 4
gpt4 key购买 nike

如何在 RCF6902 之后的 DDD 应用程序中执行 HTTP PATCH强类型语言(如 Java 或 C#)中的 JSON PATCH 规范。条件不违反 DDD,所有内容都是强类型的并且实体是不可变的?

最佳答案

RFC6902 的意图与DDD 方法不太兼容。此 RFC 用于定义一个协议(protocol),该协议(protocol)用于以 CRUD 样式(而不是 DDD 样式)改变对象。 DDD 关注使用通用语言的业务行为,而 CRUD 关注数据。

如果您确实想要,您可以将RFC6902 用于应用程序的命令端(也称为写入端)。每个 PATCH 请求都将映射到一个或多个命令,这些命令将发送到由请求的 URL 标识的单个聚合。此外,只有 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 }
]

此请求会将 id 等于 456 的 itemquantity 设置为 3 order 中,id 等于 123

我再说一遍,RFC6902DDD 没有意义。

关于domain-driven-design - 如何使用强类型语言通过域驱动设计执行 HTTP PATCH?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43658623/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com