我正在和一位同事讨论Web服务。现在我们都同意Web方法应该只有一个责任,按照单一责任原则,但整个服务呢?我一直认为Web服务是一个网关,他的论点是,如果Web服务的方法在功能上或从域的角度来看具有不同的区域,那么这些方法应该放在一个完全独立的Web服务中。我希望了解社群对此事的看法。
具有功能不同方法的Web服务是否应该存放在不同的服务和URL中?
OR
被视为内部网关的Web服务是否应该存在功能不同但与网关概念相关的方法?
答案 0 :(得分:1)
我认为这将是一个意见问题,但我们选择使用与C#中的类库相同的指南来构建我们的Web服务(因为我们是.NET商店)。类似的功能进入类似的Web服务,命名为明确定义每个Web服务的期望。
答案 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可以帮助你部署它们。