WebAPI 服务架构

WebAPI services architecture

我们有一个 web api 服务层 (SL),其中业务层的每个部分都有自己的 web api 应用程序。目前我们正在为 api 添加管理功能。管理功能可以与 Engine1Engine2 等相关。

我正在考虑添加一个 SL.Admin 应用程序来公开管理员 api。业务层分为"module",即BL.Main,BL.Engine1和BL.Engine2。因为我使用 autofac 作为工厂,所以我想将 SL.Engine1 注册分为两个模块,即 Engine1Module 和 Engine1AdminModule。这样我就可以在 SL.Engine1 中注册 Engine1Module,在 SL.Admin.

中注册 Engine1AdminModule

我们的 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

我想知道这是一个好策略还是我应该更仔细地做功课? :)

将事物放在单独的服务中始终是一个不错的设计选择。在我看来,您可以更进一步(如果可能)使管理服务独立于引擎业务层,这意味着您可以在业务层上分离出管理功能。通过这种方式,您可以获得彼此更加独立的服务。