REST - 应用层还是服务层?

REST - Application layer or Service layer?

我正在编写为客户端公开 REST 接口和 Web 套接字的 Web 应用程序。该项目与底层数据库交互。 UI 层和整体业务逻辑作为单独的项目处理。现在我想在此 Web 应用程序中应用图层。

我将我的 Web 应用程序拆分为

1. Service layer (Exposes REST and Websocket)
2. Domain layer (Handling web application's Business logic)
3. Persistance layer (DB access)

这样分开对吗?还是我应该将 REST 视为 application layer?是application layera.k.aservice layer?这里哪个更有意义?

REST接口与UI属于同一层。它是一种与您的应用程序交互的方式,只是没有用户界面。我喜欢将 API 与 UI 放在一个单独的项目中,这样它就可以单独部署并单独扩展。理想情况下,UI 将使用 API 进行数据访问。

话虽如此,问这个问题意味着您正在设计自己的架构模式,这不是一个好主意。我的大得多的大脑已经多次攻击并解决了这个问题,所以你应该选择一个并使用它。我发现最灵活的是 Onion Architecture (https://dzone.com/articles/onion-architecture-is-interesting),它非常适合 DDD 或 Active Record。但是,在洋葱架构中,界面和实现之间的分离方式需要一些时间来适应,因此如果您决定以这种方式迁移,请给自己多一点时间来适应它。一旦你这样做了,你会对这种灵活性感到满意。