让网络服务承担多项责任是否合适?

时间:2011-12-21 21:56:15

标签: web-services

我正在和一位同事讨论Web服务。现在我们都同意Web方法应该只有一个责任,按照单一责任原则,但整个服务呢?我一直认为Web服务是一个网关,他的论点是,如果Web服务的方法在功能上或从域的角度来看具有不同的区域,那么这些方法应该放在一个完全独立的Web服务中。我希望了解社群对此事的看法。

具有功能不同方法的Web服务是否应该存放在不同的服务和URL中?

OR

被视为内部网关的Web服务是否应该存在功能不同但与网关概念相关的方法?

2 个答案:

答案 0 :(得分:1)

我认为这将是一个意见问题,但我们选择使用与C#中的类库相同的指南来构建我们的Web服务(因为我们是.NET商店)。类似的功能进入类似的Web服务,命名为明确定义每个Web服务的期望。

  • RetailLocationServices
  • EmployeeInformationServices
  • 金融服务

答案 1 :(得分:0)

如果一个模型由一个网址和一个功能区组成:

http://api.<yourdomain>/1.0/Finance/
http://api.<yourdomain>/1.0/Users/
http://api.<yourdomain>/1.0/<FunctionalArea>/

如果需要,您可以省略版本目录。 根据我在某些时候使用API​​的经验,你需要/需要推出另一个版本。有些人使用查询字符串参数执行此操作,我更喜欢在URL中查看调用者。

然后,您可以垂直分割服务的开发,因此升级到一个不会影响其他服务。一些auto-build-magic可以帮助你部署它们。