gpt4 book ai didi

c# - "Flexible Webservice"策略

转载 作者:太空宇宙 更新时间:2023-11-03 10:53:04 25 4
gpt4 key购买 nike

我正在为许多不同的客户构建网络服务以连接到汽车零件数据库。该部件具有多种特性。不同的客户将需要不同的属性子集来“做他们的事”。

所有客户至少需要一个 ID、一个部件号和一个名称。有些可能需要价格,有些可能需要图像的 URL,等等。下一个客户可能会在几年后编写,并且需要不同的属性子集。我宁愿发送的数量不超过他们的需要。

我一直在构建单独的“PartDTO”,其中包含针对这些要求中的每一个的属性子集,并将它们作为单独的 Web 服务方法提供,以返回相同的零件列表,但每个零件具有不同的属性。与其为每个客户构建它并为 DTO 和方法提出逻辑名称,我希望有一种方法让客户指定他们想要的内容。我正在返回 JSON,所以我在考虑客户端向我传递一个 JSON 对象,列出他们在结果集中想要的属性:

ret = { ImageUrl: true, RetailPrice: true, ... }

首先,这有意义吗?

其次,我不想在这里丢失的是返回 IEnumerable < DTO > 并让 JSON 工具序列化它的漂亮语法。我当然可以构建一个“JSON”字符串并返回它,但这看起来很笨拙。

建议? C#“动态”?

最佳答案

这是 Entity-Attribute-Value model 的一个很好的候选者.基本上你有一个 ID、名称、值表,你允许每个客户/方面存储他们想要的任何东西......然后当他们查询时你返回他们的名称-值对并让他们随意使用它们。

优点: super 灵活。适用于强架构增加大量复杂性与值(value)的情况。多个客户端的单个端点。

缺点:通常不喜欢的模式,很难从中有效地选择,也很难索引。但是,如果您所做的只是存储和返回名称-值集合,应该没问题。

关于c# - "Flexible Webservice"策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20618342/

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