后端接口设计总结
前后端分离开发的模式已经是项目开发的主流,它相比于传统的开发(例如 jsp+servlet、asp + .net、thymeleaf、freemaker 等)可以使开发者可以更专注自己的业务,这里先不讨论性能的问题,传统开发前后端往往耦合较大,开发过程前后端相互牵制,或者说后端几乎把前端的事情都做了,这种开发模式持续了很长时间,直到有一天 ajax 的出现,才打破了这种开发模式。使用前后端分离开发模式可以使前后端的开发同时进行,使开发者更专注自己的业务——前端更专注用户界面和体验,后端更注重业务逻辑的实现和业务查询性能。当然,没有十全十美的事物,起初,前后端分离也是有缺点,在 jsp+servlet 开发的时代,后端可以轻易的操作会话,意味着后端对前端的把控更足,但是在前后端分离的开发模式中,功能都是一个个的接口,使用接口都是通过 http 请求来完成的,前端请求后端接口是在一个黑盒的环境下,二者谁也不知到谁,这就给第三者或者恶意用户有机可乘, 循环调用接口,恶意增加删除数据,特别是用户相关的信息,都是公司最重要的数据。前后端分离后端如果没有一个很好的安全手段来防止这种危险是不行的。暴露出来了问题就要解决问题,随后,shiro、spring security,OAuth 等一系列安全框架规范应运而生,至此前后端分离的开发模式才真正的趋于完善。
前面说了一大堆,下面进入今天的主题。接口的设计通常是前后端开发前一起经过确认敲定的,开发时前后端同时开发,但是计划往往赶不上变化,或者说“需求”是不断变化的。经常听到一些后端吐槽前端,或者前端吐槽后端,之前感受不深刻,经过项目的蹂躏后,终于发现,吐槽太正常了!这次项目写前端有新的体会,接口设计太重要了,好的接口用起来千篇一律,不好的接口用起来真是受罪。
这些来自我写项目中的经验总结。一直走的都是后端,但这次项目写的是小程序的前端,后端是另一个伙伴负责的,调用接口是总是感觉不爽 ,有时也会出现一些小问题。出现问题,当然责任不都是后端的,前端也有责任,遇到这种问题还是前后端交流不够。本人能力有限,这里简单说下接口设计的一些建议,不对的地方可以评论指出。
1.接口注释和说明写清楚!
2.参数、接口名称见名知意,给出参数的类型和示例数据,最好能有段直接执行的测试代码。
3.接口做好分类,通常按照功能进行分类,如下方钉钉开放接口
4.接口功能单一性——只做一件事不做其他的
5.接口的参数如果可以写默认值就把默认值写上
接口设计是个艺术,需要前瞻和全面的眼光!