java - 私有(private) REST API 成熟度级别和额外的复杂性层

标签 java rest api spring-mvc crud

这是我的第一个基于 REST 的项目,目前使用 Spring 进行开发。当我开始学习和实现 REST 时,我觉得我开始对它进行过度设计,以实现一个基本上是 CRUD 的封闭 API,主要是它仅服务于 Web 应用程序。

我不认为资源的概念在这里得到了最好的使用,而且 HATEOAS(成熟度级别 3)感觉有点尴尬,因为后端和前端部门在同一个办公室工作,而且我不要认为该项目会扩展至 HATEOAS 会大放异彩的亚马逊水平,HAL 似乎也使事情变得复杂并且没有给我们带来任何好处。

在此期间,我了解到 REST 对于公共(public) API 来说有多么强大,但在我们的例子中,对于私有(private) API,我看不到它的好处。 我应该以什么心态来设计带有 REST 架构的私有(private) API(如果甚至需要 REST)?

最佳答案

这是一个固执己见的问题,因此请对此处所写的所有内容持保留态度。

在我看来,成熟度级别 3 对于内部 API 来说没有意义。如果您可以控制和更新 API 客户端,那么 HATEOAS 所增加的灵活性并不能证明增加的协议(protocol)复杂性是合理的。正如您所指出的,当您无法控制客户时,HATEOAS 的主要优势就会显现出来。

在我看来,对于您的场景来说,成熟度级别为 2 就足够好了

但话又说回来,我并不完全理解您的背景和您的可进化性要求。

关于java - 私有(private) REST API 成熟度级别和额外的复杂性层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52492849/

相关文章:

java - 找不到媒体类型 Jersey MessageBodyWriter = text/plain

php - 如何验证或限制用户的直接 SQL 输入?

javascript - 从网站发布推文

api - 在 Twitter Api 中通过 id 获取用户名

wcf - 在 IIS 6 上启用 WCF REST Api 上的 PUT(没有 .svc 文件)

java - 根据线程记录到不同的文件

java - "thread-safe"的真正含义是什么?

java - Swing 应用程序连续运行约 6 小时后变得无响应

javascript - 如何将权限/授权数据传递给客户端 Javascript?

java - Retrofit 2 API 我可以使用本地文件路径或 json 字符串而不是 url 吗?