本文章描述的是Swagger3.0的内容,与Swagger2.0内容有较大差别。接口描述在3.0中通过Swagger规范(一个JSON文件)来描述,Swagger2.0是通过在接口中提供一系列注解来描述的。

1.集成Swagger

Swagger提供了一组静态页面,可以在SpringBoot应用中集成这些静态页面,直接访问静态页面,并打开指定的Swagger规范,就可以显示RESTFul接口:

进入Swagger官网,选择Swagger UI,点击下载。

页面会跳转到GitHub

在GitHub中,选择一个最新的版本下载,目前最新的是Swagger UI 3.20.5.

下载解压后,找到dist目录,将目录里面所有的文件复制到新的SpringBoot项目中src\main\resources\static\swagger3\目录下面。

打开后的页面分为两部分,第一部分为接口的基本信息,包含了项目名称,描述等信息;第二部分包含了每个接口的具体描述,如接口名字,参数名字,参数类型,是否必填等,还有返回的结果的示例。

注意:默认提供的Petstore接口调用并不能成功,因为这涉及跨域问题,在localhost环境下发起对petstore.swagger.io的AJAX调用会导致失败。

2.Swagger规范

swagger规范是一个JSON格式的文件,包含项目基本信息及具体接口描述信息,可以在swagger3下创建一个sample.json文件,我们将逐渐完善。

{

"swagger":"2.0",

"info":{

"description":"这是一个项目简单实例",

"version":"1.0",

"tirle":"系统接口",

},

"basePath":"/api/v1",

"consumes":[

"application/x-www-form-urlencode"

]

}

属性swagger总是规范的第一个属性,固定为2.0,指的是Swagger规范2.0。

info描述了一个项目的基本信息。

basePath:指的是RESRFul接口的实际地址,以上是/api/v1,则REST接口的地址则是127.0.0.1:8080/api/v1。

consumes:指提交的内容是表单。

点击Explore按钮,页面刷新后,如下所示:

3.接口描述

"paths":{

"/order/{orderId}":{

"get":{

"summary":"获取订单详细信息",

"description":"传入订单编号,获取订单信息",

"parameters":[

{

"name":"orderId",

"in":"path",

"description":"订单Id",

"required":true

}

],

"responses":{

"200":{

"description":"获取用户信息成功"

}

}

}

}

}

每个接口包含了以下信息:

summary:接口主要功能的简要描述

description:接口详细描述

parameters:接口的参数,REST参数在Swagger中分为四个类型,以上实例的参数类型是path,也就是参数是从path中获取的,其他的还有body,parameter等。

response:对应了HTTP status的提示信息,这里描述了成功的提示信息。

4.查询参数描述

"parameters":[

{

"name":"offset",

"in":"query",

"description":"查询起始位置",

"required":true

}

]

https://localhost:8080/api/v1/order?offset=12

5.HTTP头参数

"parameters":[

{

"name":"X-Request-ID",

"in":"header",

"description":"",

}

]

6.表单参数

使用application/x-www-form-urlencoded提交的参数,in的值使用formData。

"parameters":[

{

"name":"orderName",

"in":"formData",

"description":"",

"required":true

}

]

7.文件上传参数

"parameters":[

{

"name":"orderName",

"in":"formData",

"description":"",

"type":"file"

}

]

8.整个请求体作为参数

"/order":{

"post":{

"summary":"创建订单",

"description":"创建一个新订单",

"parameters":[

{

"name":"order",

"in":"body",

"description":"包含订单信息的JSON",

"required":true,

"schema":{

"$ref":"#/definitions/order"

}

}

],

"responses":{

"200":{

"description":"创建订单成功"

}

}

}

}

"definitions":{

"order":{

"type":"object",

"properties":{

"id":{

"type":"string"

},

"name":{

"type":"string"

}

}

}

}

未完待续...

swagger ui.html 路径,Swagger UI 详细讲解相关推荐

  1. Yaml版接口自动化详细讲解(Python + pytest + allure + log + yaml + mysql + redis + 钉钉通知 + Jenkins)

    目录 框架介绍 框架结构 框架功能讲解 common  # 配置 config.yaml  # 公共配置 setting.py  # 环境路径存放区域 data  # 测试用例数据 Files  #  ...

  2. 前后端分离必备工具:Swagger快速搞定(整合SpringBoot详细教程)

    本文根据狂神教学视屏同步所做笔记 目录 一.Swagger简介 1. 前后端分离 2. Swagger引入 二.SpringBoot集成Swagger 1. 新建springboot项目 2. 导入S ...

  3. 推荐系统[二]:召回算法超详细讲解[召回模型演化过程、召回模型主流常见算法(DeepMF/TDM/Airbnb Embedding/Item2vec等)、召回路径简介、多路召回融合]

    搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排).系统架构.常见问题.算法项目实战总结.技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排 ...

  4. C语言老鼠走迷宫(单路径)算法详细讲解

    最近在学习C语言的一些经典算法,其中遇到了一点困难,导致卡进度了.琢磨了很久,在绘制流程图时,突然灵感大开理解了,老鼠走迷宫算法的奇妙.所以写了这个,一来是方便以后右和我类似的同学自学时,遇到这个问题 ...

  5. 零基础学UI设计,正确的学习方法讲解!

    时代发展,互联网更新,因此IT人才备受企业的重视.UI设计是互联网时代的设计变革,有界面与人之间交互的时候就存在,但却没有现在这样对UI设计专业能力的重视.如今市场上对UI开发工程师的需求不断的增加. ...

  6. 一文详细讲解API网关核心功能和API管理扩展

    本文将详细讲解API网关的基础概念,使用场景和核心功能,以及基于API网关核心引擎做的API全生命周期管理功能扩展等,最后介绍当前主流的开源API网关引擎. API网关概述 在微服务架构体系里面,我们 ...

  7. react的超详细讲解

    create-react-app 项目目录 在HTML中使用react 1 2 3基础 React的注意事项 模拟的React 和 render React组件 函数组件 类组件 React 的数据源 ...

  8. QT入门看这一篇就够了——超详细讲解(40000多字详细讲解,涵盖qt大量知识)

    目录 一.Qt概述 1.1 什么是Qt 1.2 Qt的发展史 1.3 Qt的优势 1.4 Qt版本 1.5 成功案例 二.创建Qt项目 2.1 使用向导创建 2.2 一个最简单的Qt应用程序 2.2. ...

  9. 从0到1手把手搭建spring cloud alibaba 微服务大型应用框架(十五) swagger篇 : gateway 集成swagger 与 knife4j实现在线api文档并嵌入到自己项目内

    背景 我们日常开发中基本都是协同开发的,当然极个别的项目整体前后端都是一个人开发的,当多人协作时,尤其是前后端人员协同开发时 必然会面临着前端需要了解后端api接口的情况,两个选择,提前设计好文档,然 ...

最新文章

  1. 【目标检测系列】CNN中的目标多尺度处理方法
  2. Nature Human Behavior:大脑对不公平的反应有助预测抑郁症
  3. iPhone13下周三发布,提前看剧透:刘海缩小、120Hz高刷屏、Mini又续一年…
  4. 一周小程序学习 第1天
  5. 后台开发经典书籍--Zookeeper分布式过程
  6. jasp报错_JSP报错!成功解决问题200+追加分数!
  7. 这七种回归分析技术,学了不后悔
  8. 经过这几年的磨练_通过构建这15个项目来磨练您JavaScript技能
  9. Android Studio3.2经常用的一些依赖(以后再加)
  10. 获取当前user的Session状态
  11. Fiddler4抓包筛选条件方法
  12. 计算机组成原理秦磊华 pdf,_计算机组成原理_设计性实践教学模式研究_秦磊华.pdf...
  13. MAC 下卸载 MySQL
  14. Linux配置阿里yum源
  15. 京瓷打印机m5521cdn_京瓷ECOSYS M5521cdn打印机驱动下载
  16. pyltp实现句法分析并画出句法图
  17. 目前最火的PostgreSQL数据库,我通关了 | PostgreSQL技能树测评
  18. 我的团长我的团第三集
  19. python 马赛克还原_马赛克消除还原工具Depix测试
  20. Python中的交叉分析pivot_table

热门文章

  1. vuex、浏览器缓存机制、数据响应式的原理
  2. 数组: 数组的遍历: 二维数组: 二维数组的遍历方式:
  3. CodeForces 1535D : Playoff Tournament 二叉树
  4. 读书笔记-精准努力-我也是如此的拖延以至于不断平庸
  5. 判断cron表达式是否在当前时间(或者指定时间)执行
  6. K8s服务发现组件-CoreDNS简介
  7. python获取url文件名_Python实现从URL地址提取文件名的方法
  8. GWAS分析中SNP解释百分比PVE | 第一篇,SNP解释百分比之和为何大于1?
  9. java双重for循环流程图_Java的for循环
  10. Android常见输入inputType类型