现在业界对开发部署UI项目的趋势是先后端分离,也就是说,一部分人只作前端(HTML/CSS/Javascript等),一部分人只作后端(也叫服务器端)。这种开发模式下,一般先后端各自有各自的开发流程、构建和测试工具等。同时,UI前端须要和后端协调好API等接口,而后前端使用Mock server等来模拟后台提供的数据。可是,这种模式下,就有先后端的集成的问题:经常在开发最后阶段,须要先后端进行集成时,才发现一开始约定好的数据结构已经发生变化——即先后端感知到接口变化的周期太长。并且这种API接口、数据结构的变化每每仍是不可避免的。前端
要解决这个问题,以往的项目开发中,一般的解决办法是,在项目组开发人员之间预先约定和规范,经过持续集成契约接口测试来避免。固然很显然仅仅依靠纪律是不够的,同时在代码还未完善时进行持续集成测试每每事倍功半,所以,咱们还须要借助工具帮助咱们提升约定API接口的效率。而Swagger就是这么一个工具,能够帮助咱们实现“先后端分离”“及时协商、尽早解决”。git
根据官网的描述,Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。它容许使客户端和文件系统做为服务器以一样的速度来更新。github
Swagger是一个AngularJs开源项目(建议用Chrome浏览器打开官网),Swagger有以下几个重要部分:后端
其中,swagger-editor能够经过官网swagger-editor-online在线查看Demo打开。api