2015-12-29 79 views
1

我们有一个Web API服务层(SL),其中业务层的每个部分都有自己的Web API应用程序。目前我们正在为我们的API添加管理功能。管理特征可以WebAPI服务架构

我正在考虑加入SL.Admin应用暴露管理API涉及到两个引擎1引擎2等。业务层由“模块”分开,即BL.Main,BL.Engine1和BL.Engine2。由于我使用autofac作为工厂,因此我想将SL.Engine1注册分为两个模块,即Engine1Module和Engine1AdminModule。这样我可以在SL.Admin的SL.Engine1和Engine1AdminModule中注册Engine1Module。

  • SL.Main
  • SL.Engine1
  • SL.Engine2
  • ...
  • SL.Admin?

我们的API看起来是这样的(使用反向代理)

/api/engine1/foo/bar/featureA?varX=x 
/api/engine2/foo/bar/featureB?varY=y 
/api/admin/engine1/foo/bar/featureC?varZ=z 
/api/admin/engine2/foo/bar/featureD?varT=t 

我想知道如果这是一个很好的策略,或者我应该更仔细地做功课? :)

回答

1

它总是一个很好的设计选择,以保持在单独的服务的东西。在我看来,如果可能的话,您可以进一步使管理服务独立于引擎业务层,这意味着您可以在业务层上分离出管理功能。这样你就可以获得更独立的服务。

+0

谢谢。同意 - 将BL分成两个独立的项目* BL.Engine1.Admin *和* BL.Engine1 *可能是一个好主意。 – JohanLarsson