繁体   English   中英

多客户系统的动态Web服务设计

[英]Dynamic web service design for multi-customer systems

我正在做一个项目,我需要重构我的Web服务,因为它们将被不同的客户使用。 问题在于这些不同的客户可能希望根据他们的需求发送或接收一些自定义数据。 我将尝试用一个例子来解释它。

假设我们有两个针对客户的Web服务,

  1. WS_GetUsers | 输入:无| 输出:{UserName,IsActive,名称,姓氏}的列表
  2. WS_GetUserInfo | 输入:用户名| 用户名,IsActive,名称,姓

我们有两个客户。 Cust1Cust2使用相同的Web服务。 但是Cust1希望我们更改WS_GetUsers服务。 因为他们只想查看活动的用户(其中​​IsActive = 1)。

因此,我只想为这两个客户提供两种服务。 但是我不想更改服务的输入/输出参数。 因为Cust2不想更改有关服务的任何内容,所以我不应该打扰他们。

同时, Cust2意识到他们需要另一个信息,即LastLoginDateTime ,我们不会将其存储在数据库中。 因此,可以说我们做了一些神奇的工作,并开始存储该信息。 但是这里发生了同样的问题,现在我需要发送该信息作为两个服务的响应。 但是Cust1不应受到该更改的影响。

目前,我们使用键值对数组作为输入和输出来解决该问题。 但是我想知道关于用于多机构/客户的Web服务是否有一种方法或方法(或你们的任何建议)。

注意:此问题全部与服务I / O参数有关。 根据输入更改业务流程目前不是问题。

我认为您的案例非常适合OData Web服务。 您可以创建端点并返回IQueryable,客户端将能够发送查询,扩展响应等。

http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/create-an-odata-v4-endpoint

http://www.asp.net/web-api/overview/odata-support-in-aspnet-web-api/using-select-expand-and-value

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM