Web 技术研究所

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

前端连接数据库的可行性 - REST

  JSON是一种轻便的数据结构(至少比XML精简),它非常适合作为数据传输使用,但要作为存储的话我觉得它的数据类型还是太弱了,所以我不喜欢PATCH操作JSON的做法。如果有一套类型足够强大的存储结构(比如可以从XML扩展一个),也许可以更实用。
  不仅是JSON,我甚至觉得MySQL自带的数据类型都太弱了。
  在一般的表单操作中都会有好几步的数据验证,先在前端验证一次数(为了避免不必要的数据传输),然后后端再验证一次(前端的验证可能被绕过),最后写入数据库时可能还要验证一次(验证数据类型合法性)。前端验证只是做一些简单的格式验证,比如手机号、电子邮箱等这些格式验证。后端验证除了做前端要做的这些验证外还有一些业务逻辑验证,比如验证用户名重复、验证验证码等。最后的入库验证这一步通常是数据库自己实现的,比如不能把非数值写入数值类型的字段中。
  如果数据库提供的类型足够丰富,后端重复验证前端的步骤就可以交给数据库处理,降低后端程序的复杂程度。现在有一些框架已经这么做了,所以这并不是重点。重点是如果后端验证的步骤省略,前端的一些请求可以直接向数据库发起(当然可能也要有中间层做权限验证)。
  我的想法是,数据库中的内容做成一个个资源供给前端使用(可以是XML之类的结构)。如果哪个资源需要更新,前端直接向相应的资源发起PATCH请求,后端不需要做复杂的处理就可以转发给数据库,如果数据有问题就直接从数据库抛出异常后反馈给前端。当然这个数据库也是要特殊设计的,要考虑安全性、性能等问题,并不太容易。有了这样一个设计好的数据库之后,只要再做一套可靠的PATCH结构语法,就可以实现。这么一来,后端就不需要处理复杂的业务逻辑,接口也变得灵活可靠,至少可以不必让后端开发人员为每一个业务逻辑都开发一个接口吧。
  其实这个概念在以前的文章中有介绍过
    前端连接数据库的可行性
    前端连接数据库的可行性 - 续
  只是这回加入了点REST的感觉,而且稍微强调一下数据库类型的重要性。
网名:
34.203.245.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^