gpt4 book ai didi

servicestack - 如何使用 ServiceStack 发送命令?

转载 作者:行者123 更新时间:2023-12-04 18:24:07 28 4
gpt4 key购买 nike

我刚刚进入 REST 和 ServiceStack,现在我的 GET 正在返回可能是 XML 或 Json 的字符串。

我现在需要处理更改我的域模型的 PUT 或 POST 命令。

对于单个资源,我的域模型上可以有许多命令(即对于客户资源,我可以更改名称、更改地址、更改帐单地址等)。对域模型的每次更改将仅包含这些更改中的一项(不是全部)。

使用 ServiceStack,我是否可以创建一个 DTO,其中包含一个标志/枚举来指示更改是什么?这意味着我有一个带有 case 语句的 REST 服务来指示我应该在域上做什么。这也意味着我有一个非常大的 DTO 对象,其中包含需要发布以更改我的域的数据(其中很多属性将为空)。

或者我是否创建了很多 DTO 和 REST 服务,每个服务都特定于我的模型上的更改?在这种情况下,我需要将 ?Command=changeAddress 添加到 URL 吗?不确定这是否正确。

最佳答案

This also means I have a very large DTO object which contains the data that needs to be posted to change my domain (of which a lot of the properties will be empty).



具有空属性的非常大的 DTO 对象不是性能问题,因为 ServiceStack 的文本序列化程序(即 JSON/JSV)仅发出非空值的数据,并且不会花时间反序列化有效负载中没有的内容 - 所以它应该'从性能的角度来看,这不是一个问题。

除了要求为每个 REST 服务动词使用相同的请求 DTO 之外,没有关于如何设计服务的“ServiceStack 方式”,并且 ServiceStack 不会强制采用设计风格。

如果您想更喜欢 REST-ful 设计,您可以将您的客户拆分为可单独修改的可管理实体,例如更改客户帐单地址,我会执行以下操作:
PUT /customers/address/billing
{
"Line1": "123 Street",
"City": "Brooklyn",
"State": "NY"
}

并有一个单独的 REST 服务来管理客户地址,例如:
Register<CustomerAddress>("/customers/address/{AddressType}");

关于servicestack - 如何使用 ServiceStack 发送命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10060919/

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