大型企业API设计



我需要建议我们如何最好地实现api的大型企业应用程序有几个子web应用程序运行在根应用程序。例如Root、Child1和Child2

在IIS中托管的每个应用程序都有单独的MVP项目。MVC应用程序只有前端逻辑,业务和;数据访问层托管在另一个WCF项目中(每个子项目都是一个单独的WCF项目)。前端MVC应用程序只路由请求到目标WCF应用程序。

现在我计划为每个应用程序设计api。我不能决定是否应该创建一个单独的应用程序,它将为所有的子应用程序和根应用程序保存API,或者应该在每个应用程序中添加API。与前端MVC项目一样,api也将重定向到集中式WCF应用程序。

有一个共同的逻辑适用于所有的API(速率限制,认证等),如果API是在每个应用程序,那么我将不得不复制逻辑在所有三个应用程序。

这两种方法都是有利有弊的。

开发单独api的优点包括;

    <
  1. 隔离/gh>
  2. 更容易更改
  3. 可独立部署,即可独立扩展
  4. 如果不同的开发团队参与不同的api,可能会更容易

缺点包括:

  1. 需要决定是否要在每个API中重复公共代码或提取公共共享模块(然后减少隔离优势)
  2. 更多的基础设施/操作来处理
  3. 如果你想在所有API的速率限制方面进行协调,这比它们是单个API更难

我的默认位置是开发单独的api,但你的特殊用例(路由请求到其他东西)可能会解决一些现有的工具,如nginx -我不了解这些,所以不能建议

最新更新