📘
技术积累
  • 简介
  • 学习方法
    • 如何提高编程技能
  • 基础知识
    • Linux
      • Linux常用指令
      • rsync
      • VIM
      • tmate命令行分享
      • 命令别名存储
      • 项目服务器重启
    • 设计模式
    • 自动化接口使用
    • 项目经理培训
    • 报价策略
    • 培训材料撰写
  • 工具
    • Ajax
    • AutV
    • axios
    • Babel
    • bower
    • codecov
    • crypto
    • CSS3D
    • Docker
    • Echarts
    • Git
      • 如何删除项目
      • 多个ssh_key的生成与使用
      • 常用命令清单
    • Gitbook
      • Gitbook 更多配置
      • Markdown 标记示例
    • gulp
    • Istanbul
    • JEST
    • jMeter
    • js-md5
    • Kama
    • LESS Sass 编译工具Koala介绍
    • Lodash
    • Markdown
    • Maven
    • Moment
    • Nginx
    • NPM
    • NVM
    • particles.js粒子效果
    • PM2
    • Qs
    • Swagger
    • Webpack
    • Webpack
    • Yarn
    • Yeoman使用
  • 平台
    • 代码托管平台 GitLab
    • 代码安全平台 sonarqube
  • 语言和框架
    • 工作流
    • Angular
      • FUSE-Angular前端框架项目初始化
      • AngularJs-toaster-Angular提示弹框插件
      • ng-file-upload-Angular上传图片插件
      • ngclipboard-Angular复制到剪贴板插件
    • Vue
      • ElementUI-Vue前端框架项目初始化
      • clipboard使用
      • mobileSelect.js使用
      • vue-cookies使用
      • vue-fullpage使用
      • vue-router使用
      • Vue的Ref属性
      • Vuex使用
      • Vux使用
      • vux-uploader使用
      • Vue生命周期图例
      • iview-loader使用
    • cycleJs
    • ES6
      • async/await
    • react
      • react生命周期
      • create-react-app
      • Rematch
      • react-router
      • react-router-dom
      • css-in-js
    • TypeScript
      • VueAndTypeScript
    • 微信小程序
    • Hexo博客框架
      • Hexo博客框架-图片问题处理
      • Hexo博客框架-切换主题
    • SmartClient
    • HybridApp混合开发
      • uniapp
  • 代码审查
    • 代码命名规范
    • 页面代码结构
    • JavaScript标准编码风格
    • AirbnbJavaScript风格指南
  • 其他
    • 收藏|激发灵感的33套网页配色方案(附色值)
    • KPI&OKR
    • 测试自动化
    • view
    • 前端面试
      • 项目方面
      • html+css
      • JavaScript方面
      • JavaScript面试
      • 框架方面
      • 前端面试3+1
        • 20190420
        • 20190419
        • 20190418
        • 20190417
    • Linux面试题
    • JAVA面试
    • 测试面试
    • 钉钉使用
    • sd360
  • 前端知识积累
    • css3单位汇总
    • CSS解决loading效果
    • 深度克隆的方法
    • 加密技术
    • 解决ios下的微信页面背景音乐无法自动播放问题
    • 一套绝佳的图标字体库和CSS框架:Font Awesome
    • 关于ico图标不显示解决办法
    • 提升页面响应速度
    • innerHTML引入的script如何使用
    • JavaMap转Json
    • JS开发工具大全
    • 移动端插件
    • 移动端页面通过前端方法禁止ios页面横屏方法
    • 图片资源网站
    • 排序方式
    • 图片预览上传
    • Windows部署时脚本报错
Powered by GitBook
On this page
  • 第一章 Swagger介绍
  • 1.1.Swagger 介绍及历史
  • 1.2相关工具
  • 第二章:Swagger安装及使用
  • 2.1 Swagger Editor安装
  • 2.2 Swagger-UI的安装
  • 2.3 Swagger参数介绍
  • 参考文档

Was this helpful?

  1. 工具

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安装

现在地址: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 参数格式

参考文档

PreviousQsNextWebpack

Last updated 4 years ago

Was this helpful?

需要下载一个Swagger Editor,也可以直接使用在线版本

效果图:默认端口:修改后的端口:

效果图:

效果图:

知乎网比较详细的Swagger介绍:

RESTful架构风格介绍:

swagger ;

Swagger-UI 的官方地址:

Github上的项目地址:

官方提供的demo地址:

官方:

Swagger的发展史:

Swagger本地设置:

http://editor.swagger.io/。
https://zhuanlan.zhihu.com/p/21353795
http://www.cnblogs.com/chinajava/p/5871305.html
http://www.cnblogs.com/whitewolf/p/4686154.html
https://topbitdu.gitbooks.io/swagger-document-convention/content/
http://swagger.wordnik.com
https://github.com/wordnik/swagger-ui
http://petstore.swagger.wordnik.com/
https://github.com/adrianbk/swagger-springmvc-demo
http://www.infoq.com/cn/articles/swagger-interview-tony-tam
http://www.jianshu.com/p/d6626e6bd72c