加入收藏 | 设为首页 | 会员中心 | 我要投稿 衡阳站长网 (https://www.0734zz.cn/)- 数据集成、设备管理、备份、数据加密、智能搜索!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

Swagger详细了解一下

发布时间:2020-01-20 04:47:17 所属栏目:资源 来源:简书
导读:简介 Swagger 是最流行的 API 开发工具 ,它遵循 OpenAPI Specification(OpenAPI 规范,也简称 OAS)。 Swagger 可以贯穿于整个 API 生态,如 API 的设计、编写 API 文档、 测试 和部署。 Swagger 是一种通用的,和编程语言无关的 API 描述规范。 应用场
  简介  Swagger 是最流行的 API 开发工具,它遵循 OpenAPI Specification(OpenAPI 规范,也简称 OAS)。  Swagger 可以贯穿于整个 API 生态,如 API 的设计、编写 API 文档、测试和部署。  Swagger 是一种通用的,和编程语言无关的 API 描述规范。  应用场景  如果你的 RESTful API 接口都开发完成了,你可以用 Swagger-editor 来编写 API 文档( yaml 文件 或 json 文件),然后通过 Swagger-ui 来渲染该文件,以非常美观的形式将你的 API 文档,展现给你的团队或者客户。  如果你的 RESTful API 还未开始,也可以使用 Swagger ,来设计和规范你的 API,以 Annotation (注解)的方式给你的源代码添加额外的数据。这样,Swagger 就可以检测到这些数据,自动生成对应的 API 文档。  规范  Swagger Specification(Swagger 规范),规定了如何对 API 的信息进行正确描述。  Swagger 规范,以前称作 Swagger Specification,现在称作 OpenAPI Specification(简称 OAS)。  Swagger 规范本身是与编程语言无关的,它支持两种语法风格:  YAML 语法  JSON 语法  这两种语法风格可以相互转换,都可以用来对我们的 RESTful API 接口的信息进行准确描述,便于人类和机器阅读。  在 Swagger 中,用于描述 API 信息的文档被称作 Swagger 文档。Swagger 的规范主要有两种:  Swagger 2.0  OpenAPI 3.0  关于 Swagger 规范的详细信息,请参考官方文档  Swagger文档  Swagger 文档(文件),指的是符合 Swagger 规范的文件,用于对 API 的信息进行完整地描述。  Swagger 文档是整个 Swagger 生态的核心。  Swagger 文档的类型有两种:yaml 文件和 json 文件。  yaml 文件用的是 YAML 语法风格;json 文件用的是 JSON 语法风格。这两种文件都可以用来描述 API 的信息,且可以相互转换。  简单的说,Swagger 文档就是 API 文档,只不过 Swagger 文档是用特定的语法来编写的。Swagger 文档本身看起来并不美观,这时,就需要一个好的 UI 工具将其渲染一番,这个工具就是 Swagger-ui。  我们可以用任何编辑器来编写 Swagger 文档,但为了方便在编辑的同时,检测 Swagger 文档是否符合规范,就有了 Swagger-editor 编辑器。  Swagger详细了解一下  Swagger工具  Swagger提供了多种工具,帮助解决api的不同的情况下的问题  Swagger详细了解一下  Swagger-editor  【功能】  编写 Swagger 文档  实时检测 Swagger 文档是否符合 Swagger 规范  调试 Swagger 文档里描述的 API 接口  转换 Swagger 文档(yaml 转 json,或 json 转 yaml)  【安装】  Web 版本的 Swagger-editor 直接运行在公网上,Swagger 已经给我们配置好了在线的 Swagger-editor。  也可以选择本地运行 Swagger-editor,需要 Node.js 环境支持。  本文使用docker部署,下载swagger-editor的容器  在浏览中输入:localhost:81,就可以在容器中编辑api文档Swagger详细了解一下  【使用说明】:  Swagger-editor 分为菜单栏和主体界面两个部分。  主体界面分为左右两栏,左侧是编辑区,右侧是显示区。  编辑区里默认有一个 Swagger 文档的样例,你可以将其清空,编写自己的 API 描述。  显示区是对应编辑区中的Swagger 文档的 UI 渲染情况,也就是说,右侧显示区的结果和使用 Swagger-ui 渲染 Swagger 文档后的显示结果基本一致。  Swagger-editor 的菜单栏包含以下几个菜单:  File: 用于导入、导出、转换、清空 Swagger 文档  Edit: 用于转换为标准的 YAML 格式文件,比如删除空白行等  Generate Server: 用于构建服务器端 stub  Generate Client: 用于构建客户端 SDK  选择菜单栏【File】Save as YAML,保存为swagger.yaml文件,就是我们所说的swagger文档。  文档编辑参考swagger从入门到精通  Swagger-ui  Swagger-ui 是一套 HTML/CSS/JS 框架,用于渲染 Swagger 文档,以便提供美观的 API 文档界面。也就是说,Swagger-ui 是一个 UI 渲染工具。  【安装】  docker部署,下载swagger-ui的容器  【使用】  1.使用上面部署的Swagger-editor,在编辑框中完成文档编辑后在页面上上方点击 File -> Download JSON,将文件下载到本地(/Users/jiangsuyao/Downloads)命名为swagger.json  2.json文件挂在到容器中  浏览器输入:localhost:82,即可看到与Swagger-editor的显示区同样的内容Swagger详细了解一下   【基于swagger-ui的接口测试  1. 选择接口点击【try it out】  Swagger详细了解一下  2. 修改“Example Value Model”里面参数,点击“Execute”发送请求  Swagger详细了解一下  3. 点击发送后会出现下面视图,不管发送成功/失败。你可以通过下面视图来查看请求数据:  Swagger详细了解一下  【springboot集成swagger-ui自动生成API文档】  1.添加依赖  2.编写配置文件  在application同级目录新建swagger2文件,添加swagger2配置类  3.在controller上添加注解,自动生成API  注解说明  @Api:用在类上,说明该类的作用。  @ApiOperation:注解来给API增加方法说明。  @ApiImplicitParams : 用在方法上包含一组参数说明。  @ApiImplicitParam:用来注解来给方法入参增加说明。  @ApiResponses:用于表示一组响应  @ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息  @ApiModel:描述一个Model的信息(一般用在请求参数无法使用@ApiImplicitParam注解进行描述的时候)  @ApiModelProperty:描述一个model的属性  其中  @ApiResponse参数:  code:数字,如400  message:信息,如“参数填写错误”  response:抛出异常的类  @ApiImplicitParam参数:  paramTpye:指定参数放在哪些地方(header/query/path/body/form)  name:参数名  dataTpye:参数类型  required:是否必输(true/false)  value:说明参数的意思  defaultValue:参数默认值  4.下载Swagger UI组件  去官网下载Zip包,或者在github上下载也可以,需要将dist文件夹下的所有文件的复制到webapp目录下  原理就是在系统加载的时候,Swagger配置类去扫描所有添加注释的接口,并且储存起来通过下面地址进行访问,返回JSON数据,在前端界面显示出来。  启动项目后,访问http://localhost:8099/swagger-ui.html,显示如下:Swagger详细了解一下
  Swagger-Codegen  Swagger Codegen是一个开源的代码生成器,根据Swagger定义的RESTful API可以自动建立服务端和客户端的连接。Swagger Codegen的源码可以在Github上找到。  GitHub:https://github.com/swagger-api/swagger-codegen  【安装】  首先机器上需要有jdk,然后只要下载一个cli的文件就可以了  【使用】  利用swagger-codegen根据服务生成客户端代码  在上面这段代码里,使用了三个参数,分别是-i和-l和-o。  -i,指定swagger描述文件的路径,url地址或路径文件;该参数为必须  -l,指定生成客户端代码的语言,该参数为必须  -o,指定生成文件的位置(默认当前目录)  除了可以指定上面三个参数,还有一些常用的:  -c ,json格式的配置文件的路径;文件为json格式,支持的配置项因语言的不同而不同  -a, 当获取远程swagger定义时,添加授权头信息;URL-encoded格式化的name,逗号隔开的多个值  --api-package, 指定生成的api类的包名  --artifact-id ,指定pom.xml的artifactId的值  --artifact-version ,指定pom.xml的artifact的版本  --group-id, 指定pom.xml的groupId的值  --model-package, 指定生成的model类的包名  -s ,指定该参数表示不覆盖已经存在的文件  -t ,指定模版文件所在目录  生成好的客户端代码:Swagger详细了解一下

(编辑:衡阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读