我们有一个web api服务层(SL),其中业务层的每个部分都有自己的web api应用程序。目前,我们正在为我们的api添加管理功能。管理员功能可以与 Engine1 和 Engine2 等相关。
我考虑添加 SL.Admin 应用以公开admin api。业务层由" module"分隔,即BL.Main,BL.Engine1和BL.Engine2。由于我使用autofac作为工厂,我想将SL.Engine1注册分为两个模块,即Engine1Module和Engine1AdminModule。这样我就可以在SL.Admin中的SL.Engine1和Engine1AdminModule中注册Engine1Module。
我们的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
我想知道这是一个好策略还是我应该更仔细地做我的作业? :)
答案 0 :(得分:1)
将内容保存在单独的服务中始终是一个很好的设计选择。在我看来,你可以更进一步(如果可能的话)使管理服务独立于引擎业务层,这意味着你在业务层上分离出管理功能。通过这种方式,您可以获得彼此更加独立的服务。