【问题标题】:WebAPI services architectureWebAPI 服务架构
【发布时间】:2016-04-03 03:15:46
【问题描述】:

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

我正在考虑添加一个 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


    【解决方案1】:

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

    【讨论】:

    • 谢谢。同意 - 也可以将 BL 分成两个单独的项目 BL.Engine1.AdminBL.Engine1
    猜你喜欢
    • 1970-01-01
    • 2011-10-02
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-23
    相关资源
    最近更新 更多