从事开发工作也有很长一段时间了,而如今很多公司的系统也由以C/S为主的历史转变为目前B/S为主的新局面。所谓B/S架构的应用,是指浏览器为窗口,也即以网页的形式为用户提供操作界面,前后端之间的消息传递走HTTP协议,今天我想谈谈自己对WEB服务接口设计的一些拙见。
前后端之间的接口,在目前前后端分离的场景下,主要就是纯数据的传输,数据接口的形式应该交由后端去主导,在保证数据返回完备的前提下,适当的考虑前端的特殊格式要求,但前端的UI展示不允许依赖,后端接口返回数据的结构,如数组元素的顺序。不能为了展示方便刻意设计,以至于破坏接口返回数据的逻辑合理性。另外,接口的数据返回量应该控制适当范围内,不应为了图方便,在一个接口内请求计算过多的内容,应将大模块所需数据切分成一个个小接口构成,过于耗时的大接口(指一次请求太多的东西)影响后端服务的并发性能。
接口的设计,应该合理应用POST/GET等请求方法,应该根据具体的请求参数的形式,决定采用哪种传参方法,不应当为图方便(尤其是前端),一律采用GET传参。
前端本可以做更多的事情,由于前端代码运行在用户的浏览器中,所以大部分前端似乎都不担心UI性能问题,甚至懒得做数据校验,懒得做接口返回数据的预处理,这是不正常的。前端并不只是拿到数据,直接赋值到模板就行。换个角度说,前端只考虑服务好一个用户,而后端面对的是千万用户,所以每一步因为偷懒让后端增加的不必要处理,都是在以牺牲用户的时间或者体验为代价。
OneBlog