我在Spring上执行REST API。在Spring Data Hibernate中学习了一门课程,发现它使REST API成为最耗时的方法。
当我向域中添加新实体时,我经历了以下对象链:
我的动作大致如下:
您可以看到大量的动作和大量的对象。
但是后来我发现,如果您使用Spring Data REST,那么所有这些都不需要Spring提供的所有API。通常,您只需要创建一个实体和存储库。
事实证明,对于典型的CRUD类型的操作,我徒劳地编写了许多控制器及其方法。
问题:
我对如何前进有些困惑。给我您的建议和想法。向前推动使用什么以及如何使用。
Spring Data REST可以为您完成的工作就是搭建普通存储库以提供服务。它的速度要快得多,并且从理论上讲应该很灵活,但是在实践中,除了对存储库的REST访问之外,很难实现其他目的。
在生产中,我已经将Spring Data REST用作数据库的包装器-在服务/微服务体系结构模型中,您有时将核心数据库包装到这样的层中,以实现与数据库无关的应用程序。然后,服务将在此包装器的顶部应用业务逻辑,并将为前端提供API。另一方面,如果您仅打算使用这些生成的端点,则Spring Data Rest(SDR)不适合,因为您需要自定义逻辑,以将数据提取和数据处理到仓库/服务中。您可以将两者结合使用,并将SDR用于“简单”实体(仅在其上需要基本的CRUD),以及将复杂实体与标准方法配合使用,在标准方法中,将实体与Endopint分离并应用自定义业务逻辑进入服务。混淆这两种策略的不利之处在于您的应用程序将不一致,并且某些“事情”将立即发生,这对于该项目的新开发人员来说非常令人困惑。
这浪费了您自己编写这些类的时间和精力,但这仅仅是因为您的应用还没有复杂的数据库和/或业务逻辑。
简而言之,“标准”方式以开始编写重复性代码为代价提供了更大的灵活性。