【发布时间】:2016-04-03 03:15:46
【问题描述】:
我们有一个 web api 服务层 (SL),其中业务层的每个部分都有自己的 web api 应用程序。目前我们正在向我们的 api 添加管理功能。 Admin features 可以与 Engine1 和 Engine2 等相关。
我正在考虑添加一个 SL.Admin 应用程序来公开管理 api。业务层由“模块”划分,即BL.Main、BL.Engine1和BL.Engine2。由于我使用 autofac 作为工厂,因此我想将例如 SL.Engine1 注册分为两个模块,即 Engine1Module 和 Engine1AdminModule。这样我就可以在 SL.Engine1 中注册 Engine1Module,在 SL.Admin 中注册 Engine1AdminModule。
- 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
我想知道这是一个好策略还是我应该更仔细地做功课? :)
【问题讨论】:
标签: rest architecture asp.net-web-api2 soa