开源的API文档工具框架——Swagger简介
初次接触Swagger是在2017年5月,当时公司正好要对整套系统架构进行重新设计,有同事推荐用这个技术框架来规范后台接口的API文档。当时因为架构重构,涉及改造的技术点太多,一时也就没太多精力,把Swagger暂时放下了。对于API文档我们就自己定义了一个模板,统一要求开发人员把文档写在tower上了。
现在回头来看,存在这么几个问题:
1. 文档编写及修改的及时性不够,由于API在开发及测试过程中经常会有调整,相应的文档不能及时得到修改。
2. 文档的规范性需要人为的检查来约束,增大了项目管理的工作量
3. 前端和测试人员对文档的理解有一个过程,有时需要频繁和后台开发人员进行交流,产生了一定的交流成本。
由于现在的互联网项目都是前后端合作的形式,前端和后端的唯一联系,变成了API接口;API文档变成了前后端开发人员联系的纽带,变得越来越重要,在这样的情况下,我又把注意力再次投向了Swagger。经过几天研究,大致有了比较清晰的认识,准备写几篇博客对这个技术进行一下说明。
Swagger这个单词做形容词是 “炫耀的;时髦的” 这样一个意思。官网地址:https://swagger.io,官网对其项目的定义是:
Swagger is the world’s largest framework of API developer tools for the OpenAPI Specification(OAS), enabling development across the entire API lifecycle, from design and documentation, to test and deployment.
中文意思是:Swagger是一个大型的API开发者的工具框架,该框架提出了一个编写OpenAPI的规范(命名为OAS),并且Swagger可以跨整个API生命周期进行开发,从设计和文档到测试和部署。
Swagger这个框架的原理:框架提出了一个文档规范OAS,且提供了相应的可视化编辑器可以编辑这个文档以及对文档格式进行校验,文档的存储格式可是XML或者JSON形式的文件(后面简称API元文件),围绕着API元文件框架提供了对API元文件进行可视化展示的工具,展示的时候可以自定义模板,展示的方式是浏览器的网页形式(也就是一个 可交互的web系统),并且支持对AIP接口的在线的交互测试。同时社区还开发了一些集成框架,以便让Swagger能和例如SpringMVC这样的框架很好的整合,通过在Controller上写注解就可以自动生成相应的API文档。更有意思的是Swagger还提供了根据API元文件生成客户端调用代码和服务端Stub代码的功能。
Swagger框架从宏观上来看,我个人觉得可以分为三部分:
- 提供了一个编写API文档的规范 ,称为OAS ,在规范中明确API的格式和一些编写要素
- 提供相关的工具,对API文档的编写提供辅助。主要是这么几个项目 Swagger Editor、Swagger UI、Swagger Codegen、Swagger Inspector。
- 提供对各种流行语言和框架的集成,例如集成SpringMVC 的 springfox 框架
开源的API文档工具框架——Swagger简介的更多相关文章
- API文档工具-Swagger的集成
最近安装了API文档工具swagger,因为Github上已有详细安装教程,且安装过程中没有碰到大的阻碍,所以此文仅对这次安装做一份大致记录 相关网站 Swagger 官方地址: http://swa ...
- Spring Boot (十五): 优雅的使用 API 文档工具 Swagger2
1. 引言 各位在开发的过程中肯定遇到过被接口文档折磨的经历,由于 RESTful 接口的轻量化以及低耦合性,我们在修改接口后文档更新不及时,导致接口的调用方(无论是前端还是后端)经常抱怨接口与文档不 ...
- 开源API文档工具- swagger2 与 smart-doc 比较 与 使用
工具开源地址 swagger2 : https://swagger.io/ smart-doc: https://www.oschina.net/p/smart-doc 国产 两者的比较 swagg ...
- 开源的api文档管理系统
api文档 php 在项目中,需要协同开发,所以会写许多API文档给其他同事,以前都是写一个简单的TXT文本或Word文档,口口相传,这种方式比较老土了,所以,需要有个api管理系统专门来管理这些ap ...
- 再见丑陋的 SwaggerUI,这款开源的API文档生成神器界面更炫酷,逼格更高!
一般在使用 Spring Boot 开发前后端分离项目的时候,都会用到 Swagger.Swagger 是一个规范和完整的框架,用于生成.描述.调试和可视化 RESTful 风格的 Web API 服 ...
- ASP.NET CORE 1.0 MVC API 文档用 SWASHBUCKLE SWAGGER实现
from:https://damienbod.com/2015/12/13/asp-net-5-mvc-6-api-documentation-using-swagger/ 代码生成工具: https ...
- 20个GitHub最热门的Java开源项目:文档、框架、工具
专注于Java领域优质技术,欢迎关注 文章来源:JavaGuide 以下涉及到的数据统计,数据来源:https://github.com/trending/java?since=monthly[1] ...
- Net Core的API文档工具Swagger
一.安装swagger 新建一个net core的api项目,通过NuGet安装Swashbuckle.AspNetCore. 二.注册swagger服务 在Startup.cs中注册Swagger生 ...
- api文档工具
平台选型 Apidoc 文档参考:http://apidocjs.com 优点 文档齐全,操作简单,ui清晰,代码注解查询性强,语言支持多元化, ...
随机推荐
- es安装的时候遇到的所有的坑
不允许root用户启动. 解决办法,创建子用户. 在linux下需要注意.es默认不能用root用户启动.我们需要新建一个用户来启动. groupadd es adduser es-user ...
- Web API中的路由(二)——属性路由
一.属性路由的概念 路由让webapi将一个uri匹配到对应的action,Web API 2支持一种新类型的路由:属性路由.顾名思义,属性路由使用属性来定义路由.通过属性路由,我们可以更好地控制We ...
- ACM-ICPC 2018 南京赛区网络预赛 C GDY(模拟)
https://nanti.jisuanke.com/t/30992 题意 把m张牌(牌上数字范围是1-13)放到栈里n个人,每个人首次从栈顶取5张牌,轮流取取完牌后,第1个人出他手里最小的牌,然后2 ...
- vue-cli3 第三版安装搭建项目
Vue CLI是一个用于快速Vue.js开发的完整系统 3.X较2.X结构变了很多,更优雅,开发体验更好 官方:https://cli.vuejs.org/guide/ 安装:https://cli. ...
- jquery判断对象是否存在
if($("#abc").length >0) { ... } if($("#abc").html() != "") { ... }
- 使用phpexcel上传下载excel文件
1. 下载 <?php /** * Created by lonm.shi. * Date: 2012-02-09 * Time: 下午4:54 * To change this templat ...
- Idea运行web项目时,提示java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决方法
今天用 idea写了个工程.结果最后报错,错误信息如下: java.lang.ClassNotFoundException: com.mysql.jdbc.Driverat org.apache.ca ...
- GCC编译器原理(三)------编译原理三:编译过程---预处理
Gcc的编译流程分为了四个步骤: 预处理,生成预编译文件(.文件):gcc –E hello.c –o hello.i 编译,生成汇编代码(.s文件):gcc –S hello.i –o hello. ...
- PHP cURL实现模拟登录与采集使用方法详解教程
来源:http://www.zjmainstay.cn/php-curl 本文将通过案例,整合浏览器工具与PHP程序,教你如何让数据 唾手可得 . 对于做过数据采集的人来说,cURL一定不会陌生.虽然 ...
- Centos7下安装小米SQL优化工具SOAR
1 下载源码包 赋予权限 wget https://github.com/XiaoMi/soar/releases/download/0.9.0/soar.linux-amd64 -O soar ch ...