我正在开发一个项目,我需要重构我的Web服务,因为它们将被不同的客户使用。问题是这些不同的客户可能希望根据他们的需要发送或接收一些自定义数据。我将尝试用一个例子来解释它。
假设我们为客户提供两种网络服务,
我们有两个客户。 Cust1 和 Cust2 正在使用相同的网络服务。但 Cust1 希望我们更改我的 WS_GetUsers 服务。因为他们只想看到活跃用户(IsActive = 1)。
所以,我想继续为这两个客户提供两种服务。但我不想更改服务的输入/输出参数。因为 Cust2 不想改变任何有关服务的内容,所以我不应该打扰他们。
与此同时, Cust2 意识到他们需要提供另一个我们未存储在数据库中的信息 LastLoginDateTime 。所以,让我们说我们做了一些神奇的工作并开始存储这些信息。但是同样的问题发生在这里,现在我需要发送该信息作为两个服务的响应。但 Cust1 不应受此更改的影响。
目前,我们使用键值对数组作为输入和输出来解决该问题。但我想知道是否有一种方法或方法(或者你们的任何建议)关于用于多机构/客户的网络服务。
注意:这个问题都与服务i / o参数有关。根据投入改变业务流程目前不是问题。
答案 0 :(得分:0)
我认为您的案例非常适合OData网络服务。您可以创建端点并返回IQueryable,客户端将能够发送查询,扩展响应等。
http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/using-select-expand-and-value