学习Spring-HATEOAS有感

这几天在看Spirng-in-action-5,其中讲Rest部分,着重提到了HATEOAS,描述了spring如何漂亮地写出HATEOAS风格的API,感觉很神奇,这个词之前是有看到,但是都是作为Restful的地方的补充内容,并不是重点,一向就被忽略掉了.既然书里面花了大量篇幅来讲,一定有什么不同寻常之处吧.

查了下资料,发现中文介绍的不多.比较详细的是IBM的一篇

使用 Spring HATEOAS 开发 REST 服务

内容其实和书里面差不多,看上去很强大,用一组规范把返回的数据格式固定了下来.但是实际中并没见过大规模使用,想了想,可能有几个问题:

  1. 后端增加了复杂度,有一定门槛(Resource,Assembler还是挺麻烦的).
  2. 一厢情愿的增加内嵌资源的描述,前端工程并不买账.无论vue,angular,react都各自有自己的一套路由机制,而不是读取资源描述进行加载.目前只有traverson支持,而traverson同样有学习成本,费心费力去支持这个,并没有简化开发,费心费力去实践,只是为了符合规范的话,程序员学习的热情一定大打折扣.
  3. spring-data-rest好像可以简化生成,没有前端的支持,标准再好有什么意义?

HATEOAS的主要亮点在返回结果中提供链接,连向其他相关对象(rel),使得用户不查文档,也知道下一步应该做什么。它如果是做一个公共的接口(比如GitHub),确实有一定意义,当然成本也比较大,如果是做自己的系统,单纯的前后端交互接口,那就没有特别的需要.

总之,虽然Restful这两年已经成为了前后端分离框架的API标准,HATEOAS是REST成熟度最高的3级模型,但实际却没有用起来.举个不恰当的例子,就像Hibernate,再高大上的ORM,国人就是不用,都用灵活度更高的mybatis.技术总是发展的,了解一下可能还行,但是感觉未来是否用的上,还是个大大的问号....

jhipster拒绝引入Hypermedia的讨论
https://github.com/jhipster/generator-jhipster/issues/7063

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,227评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,322评论 19 139
  • 一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式。”但是在要求详细讲述它所提出的各个约束,以及如...
    时待吾阅读 3,578评论 0 19
  • 文/逍遥侠女 执子之手,与之皆老。光阴似箭,岁月如梭,许多的婚姻,家庭都过得简单而平淡,但夫妻间的情份,却日继月增...
    逍遥侠女阅读 834评论 11 18
  • 最后一次出观众,人来的格外齐。剧场穹顶垂的红底条幅,上书毕业晚会。 坐的太靠后,眼镜忘了戴,只能眯...
    浅辄小哥哥阅读 424评论 0 2

友情链接更多精彩内容