【问题标题】:Filtering Data in ASP.NET Web Services在 ASP.NET Web 服务中过滤数据
【发布时间】:2011-09-10 08:34:02
【问题描述】:

我使用这个网站已经有一段时间了,通常可以通过浏览问题和以下标签来整理我的问题。但是,我最近遇到了一个在众多问题中很难查找的问题 - 我希望你们中的一些人能够分享您的意见。

由于我的问题很难放在一行中,因此在标题中,我将尝试就我遇到的问题提供更多详细信息。因此,正如标题所说,我需要过滤或限制我的标准 ASP.NET 基于 Soap 的 Web 服务在调用各种 Web 方法时返回的一些响应数据。 Web 服务用于返回其他系统(或多或少的数据存储库)使用的数据,今天的客户端能够指定一些关于如何过滤数据的参数,并返回一整套数据。

好吧,我想很简单,只需在现有的 Web 方法上添加额外的过滤选项,这些方法需要应用更多过滤,在服务器端进行调整,我们都准备好了 - 好吧,不幸的是结果是比这个更棘手。

我面临的问题是我正在开发在生产环境中运行的 Web 服务,需要对其进行扩展,以便可以将额外的过滤器应用于正在调用的现有 Web 方法,而不会影响调用由客户使用其客户端存根使用的其他系统制作。这是我有点困扰的地方,因为我似乎无法找到扩展当前 Web 服务的“正确解决方案”。

今天,过滤器作为自定义数据结构发送,其中包含有关应过滤哪些数据的信息,但我不确定是否可以简单地向此数据结构添加更多信息而无需在客户端破坏代码?我的一位同事建议我可以实施一种解决方案,在该解决方案中,我将在服务器端扩展 web.config 以保留一个部分,其中包含有关应排除(过滤掉)哪些数据的详细信息,但我没有找到这个成为一个有远见的可行解决方案 - 我不相信客户有这样的选择,因为这在某些时候可能会出错。所以我正在寻找的解决方案是一种我可以对我从客户端请求的数据应用“第二个过滤器”的方法,所以它应该只给出一小部分,而不是得到一整套数据,它以这样的方式实现过滤器可以轻松修改,并且不能影响当前的客户端调用。

关于我应该如何解决这个问题的任何建议?

谢谢! 亲切的问候, E.

【问题讨论】:

  • 你有什么理由不能只为新客户创建一个新方法来使用?新方法将接受额外的过滤数据?

标签: asp.net web-services soap asmx production-environment


【解决方案1】:

一个非常常见的做法是创建应用程序的另一个实例或使用部分 url 来表示他们连接到的端点的版本,也许虚拟目录是日期。这样,旧的调用将转到旧的 API,而新的调用将进入新的 API。

http://api.example.com/dostuff

http://api.example.com/6-7-2011/dostuff 

【讨论】:

  • 感谢您的回复!阅读您的答案后,我更多地研究了 Web 服务版本控制,这似乎是正确的选择。再次感谢您的快速响应,我将详细了解实现细节。
猜你喜欢
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-15
  • 2015-11-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多