WebAPI 服务架构
WebAPI services architecture
我们有一个 web api 服务层 (SL),其中业务层的每个部分都有自己的 web api 应用程序。目前我们正在为 api 添加管理功能。管理功能可以与 Engine1 和 Engine2 等相关。
我正在考虑添加一个 SL.Admin 应用程序来公开管理员 api。业务层分为"module",即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
我想知道这是一个好策略还是我应该更仔细地做功课? :)
将事物放在单独的服务中始终是一个不错的设计选择。在我看来,您可以更进一步(如果可能)使管理服务独立于引擎业务层,这意味着您可以在业务层上分离出管理功能。通过这种方式,您可以获得彼此更加独立的服务。
我们有一个 web api 服务层 (SL),其中业务层的每个部分都有自己的 web api 应用程序。目前我们正在为 api 添加管理功能。管理功能可以与 Engine1 和 Engine2 等相关。
我正在考虑添加一个 SL.Admin 应用程序来公开管理员 api。业务层分为"module",即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
我想知道这是一个好策略还是我应该更仔细地做功课? :)
将事物放在单独的服务中始终是一个不错的设计选择。在我看来,您可以更进一步(如果可能)使管理服务独立于引擎业务层,这意味着您可以在业务层上分离出管理功能。通过这种方式,您可以获得彼此更加独立的服务。