Swagger

第一章 Swagger介绍

1.1.Swagger 介绍及历史

Swagger:是一个规范和完整的框架,可以用于生成、描述、调用和可视化 RESTful 风格的 Web 服务,总体目标是使客户端和文档系统与服务器以同样的速度进行更新。Swagger倾向于在线测试接口和数据。并且这是一个完全开源的项目,并且它也是一个基于Angular的成功案例,我们可以下载源码并自己部署它,也可以修改它或集成到我们自己的软件中。

Swagger的创始人: Tony Tam

2009年Swagger框架启动,但是在当时Swagger API框架只是在Reverb内部开发的一个项目 ;

2011-10-11 1.0.1版本;2013-03-08 1.0.13;

2014年5月 Swagger的开放工作小组 成立;

Swagger 2.0.24在2014年9月12日正式发布;

Swagger规范未来的发展将由SmartBear负责,这是一家位于马萨诸塞州的软件工具公司。

2016-07-20 2.1.5版本;2016-10-14 2.2.6版本;

1.2相关工具

API Blueprint:提供跨越API整个周期的工具,这样可以和别人讨论你的API,可以产生自动文档或一个测试案例。它是使用Markdown来定义API的,Markdown相比RAML、JSON门槛又降低了一大截。同时API Blueprint与Swagger、RAML一样也能提供可视化的文档界面与Mock Server的功能。不过其Mock能力比较弱。

RAML:是一种RESTful API 建模语言(RESTful API Modeling Language :RAML), 是对 RESTful API的一种简单和直接的描述 , 它鼓励重用 激活发现和模式分享,定位在最佳实践的最优实现。它是一种让人们易于阅读并且能让机器对特定的文档能解析的语言。RAML 是基于 YAML,能帮助设计 RESTful API 和鼓励对API的发掘和重用,依靠标准和最佳实践从而编写更高质量的API。通过RAML定义,因为机器能够看得懂,所以可以衍生出一些附加的功能服务,像是解析并自动生成对应的客户端调用代码、服务端代码 结构, API说明文档

第二章:Swagger安装及使用

2.1 Swagger Editor安装

需要下载一个Swagger Editor,也可以直接使用在线版本http://editor.swagger.io/。

现在地址:git clone https://githup.com/swagger-api/swagger-editor.git

下载完成后进行本地配置(前提是已经安装好了Node.js),命令如下:

1.cd swagger-editor

2.npm install -g http-server

3.http-server (默认的是:8080端口)

4.http-server -p 7000 可以修改端口(临时)

2.2 Swagger-UI的安装

现在地址:git clone https://githup.com/swagger-api/swagger-ui.git

Swagger UI的本地配置:

1,创建一个 node目录

mkdir node

2.初始化 node,创建package.json

~ >cd node

~ >node >npm init

3.安装express

~ >node >npm install express --save

4 .创建index.js

~ >node > vim index.js

将一下代码复制到index.js中:

var express = require('express');

var app = express();

app.use('/static', express.static('public'));

app.get('/', function (req, res) {

    res.send('Hello World!');

});

app.listen(5000, function () {

    console.log('Example app listening on port 5000!');

});

5.创建public文件夹:

~ >node > mkdir public

把Swagger-UI文件中dist目录下的文件全部复制到public中:

6.开启node

~ >node > node index.js

打开浏览器输入:localhost:3000/static/index.html

2.3 Swagger参数介绍

get/post/delete/ 是指这个接口对应的请求方式

tags 当前接口的分类

summary 是对这个接口进行的一个总体描述
description:对接口的描述

parameters: 接口需要传递的参数

- name: X-Auth-Token 参数的名字

in: header 他的值:header、path、formData Query body

description: /auth接口获取的token

required: true 两个值:true、false;true为必填项,false为非必填项

type: string 参数格式

参考文档

知乎网比较详细的Swagger介绍:https://zhuanlan.zhihu.com/p/21353795

RESTful架构风格介绍:http://www.cnblogs.com/chinajava/p/5871305.html

http://www.cnblogs.com/whitewolf/p/4686154.html

swagger ;https://topbitdu.gitbooks.io/swagger-document-convention/content/

Swagger-UI 的官方地址:http://swagger.wordnik.com

Github上的项目地址:https://github.com/wordnik/swagger-ui

官方提供的demo地址:http://petstore.swagger.wordnik.com/

官方:https://github.com/adrianbk/swagger-springmvc-demo

Swagger的发展史:http://www.infoq.com/cn/articles/swagger-interview-tony-tam

Swagger本地设置:http://www.jianshu.com/p/d6626e6bd72c

Last updated