最近写了一些web应用,说到web应用无外乎前端和后端,之前的设计通常都是通过controller处理用户请求然后返回用户对应的页面展示处理结果,这样前端和后端就有很高的耦合性,也不太方便前端开发和后端开发进行整合,效率低下,而且这样的后端给其他的平台提供服务也很别扭(有状态和无状态的混在一起),这里说的其他的平台指的是比如移动客户端,别的系统等,所以现在流行的架构是采用基于http api的。
- 基于http api的优势
前端专注于页面展示的开发,通过约定好的api和后端交互,以及对api结果的处理逻辑;后端专注于各类api实现,返回指定类型的数据(json,xml等),这样前端和后端可以作为独立的项目进行并行的开发,由于更加专注和独立,所以对于代码质量和开发效率都是有很大好处的;
2.为多平台提供服务
基于api的应用,由于独立性,对服务的对象没有要求,可以是web项目,可以是移动app,可以是其他别的系统等等,这些终端通过api调用进行数据交互和数据处理,所以适用性更广。
- api设计需要考虑的东西
1.由于都是restful api,如何处理session等状态信息?
2.api的安全性和权限如何实现?
关于上面两点网上有很多相关的文章可以参考,都有比较成熟的解决方案,之后有时间再仔细研究下。
上面说的都是一些自己的认识,没有具体的代码实现。更详细的东西可以参考这篇翻译文章:http://www.oschina.net/translate/creating-an-api-centric-web-application ,写的很清楚,读完应该很有更好的认识。
第一次写博客,有些东西说的不是很清楚或者是有问题的,大家轻喷...感觉有很多东西想说但说不出来,平时写的太少了,今后要多写写自己的一些心得,应该会自己能力有很大帮助,坚持,加油!