Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

后端也服务化?

  前端和其它资源都是静态的,它们很容易服务化,可是后端呢?最近老是有一些非常小但又和其它业务没有关联的需求。就算其它资源都服务化了,应用本身依然需要服务器。比如一个问卷调查页面,上面有表单用于收集用户数据。如何才能合理化解掉这种小而碎的业务呢?
  如果资源服务化是现行标准,前端服务化是可行方案,那么后端服务化只能说是一个设想或尝试。
  其实这些简单业务对于后端的需求只是数据的简单校验和存储而已,并没有太复杂的逻辑。比如一个留言板,通常的做法的后端提供一个接口,前端把表单提交到这个接口上,后端收到数据后存入数据库。如果只是只是这么简单的行为,为什么不直接提供一个通用接口让前端直接提交并入库呢?
  当然有人可能会说后端还有数据校验的逻辑,这其实并不难,让这个通用接口支持配置文件就能解决。比如将某个字段配置为不能为空,某个字段配置为电话号码格式。如果有鉴权也可以基于 OAuth2 配置一套规则上去。
  人们总是觉得提供一个这样通用的前端可写接口是非常危险的。但仔细想想这和普通的评论功能又有什么区别呢?如果说怕被暴力刷内容,如果谁真想这么干,针对任何一个可以提交数据的接口都可以刷。非要解决这个问题就是增加验证码规则,当用户提交频率过高时弹出验证码。这样的规则同样可以在这个通用接口中做,和其它专用接口并没有什么区别。
  最后一个纠结点是关于数据管理的。我们允许用户提交数据很容易,但是谁来管理这些数据呢?如果有自己的服务器,我们可以在服务器上部署一个 CMS 之类的东西来管理,但是既然说是后端服务化,我们就没有后端程序,那要怎么解决呢?当然,由服务来提供 CMS 也是可行的,只是通用性会很低,因为每个业务需要的 CMS 都是不同的。我觉得最好的方式是依赖于一个鉴权服务来管理权限,通过 OAuth2 之类的方式来授予某些用户对数据的管理权限。也就是说,这样一套通用数据存储接口需要有操作权限分级的配置。比如赋予某个用户修改、删除的权限,所有用户只读的权限,部分用户写权限等。
  当以上这些东西都实现后,一个通用的数据存储接口就诞生了,这便是「后端服务化」。
网名:
34.203.245.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^