2015-12-29 78 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