gpt4 book ai didi

web-services - 支持延迟加载所有属性的 Web 服务模式

转载 作者:行者123 更新时间:2023-12-02 03:50:24 25 4
gpt4 key购买 nike

我正在尝试为 Web 服务设计端点模板。我的主要要求是调用者能够指定应在返回的结果集中填充哪些属性。

我的服务返回部分对象的大型列表(最多 1M 条记录)以及单个完整对象,例如(粗略示例 XML,抱歉有点冗长)

列表:

<items>
<item>
<a>aaa</a>
<b>bbb</b>
</item>
<item>
<a>aaaA</a>
<b>bbbB</b>
</item>
</items>

详细信息:

<item>
<a>aaa</a>
<b>bbb</b>
<c>ccc</c>
...
<w>
<x>xxx</x>
<y>yyy</y>
</w>
<z>zzz</z>
</item>

我考虑了以下想法:

  1. 返回列表中的完整详细信息
  2. 创建较短的“列表”项类型
  3. 传递调用者想要返回的属性名称字符串数组

我倾向于第三个选项,但我想要一些不同的东西,它不支持子对象,我考虑过传递您想要返回的 xml 架构而不是数组。

我希望 API 支持延迟加载,这就是为什么第三种方法似乎也是可行的。

以下是 3. 的函数的示例:

public User GetUser(long ID, string[] properties)

然后调用者就可以:

User.Email = GetUser(User.ID, "Email").Email

通过广泛使用默认值和隐藏 null,返回的 XML 将是:

<User>
<ID>123</ID>
<Email>example@example.com</Email>
</User>

现在上面提到的问题是试图让它与像 <w> 这样的东西一起很好地发挥作用。远高于它本身具有子项以及列表具有子项的可能性。

由于我有太多的属性,我不能为每个属性只有一个 ws 方法。

我正在考虑选项 3。但使用 xml 模式而不是 string[] ..但我想不出一种简单的方法来定义它,我也希望不必使用字符串名称作为属性,例如 "Email" .

最终计划是拥有一系列常用的预定义模式,只有在高级情况下,我们才需要实际定义所请求的属性。但我不知道所有将与我的 API 通信的系统,更不用说它们各自可能想要什么属性(我们为每个调用者定制 API 是不可行的)。

或者我是否让一切变得过于复杂?

最佳答案

我找到了有关部分响应和部分更新的 Google API 文档:

http://googlecode.blogspot.com/2011/07/lightning-fast-performance-tips-for.html

这似乎回答了我的问题。

关于web-services - 支持延迟加载所有属性的 Web 服务模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8382081/

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