Swagger Editor与Swagger-UI神器使用

简介: 使用Swagger-editor和Swagger-ui进行API构建,方便前后端沟通,据说结合开发工具更好用哦。

前言

在没有产品经理或者项目经理的情况下,对于前端和后端打交道来说,无非就是对接口的争争吵吵,字段多多少少的事。大多时候前端都喜欢直接使用后端提供的接口,而后端有时候却不知道前端到底要什么数据,就这样,Swagger这样的神器被我找到了,对于Swagger高级的应用,比如集成到IDE中自动生成文档,今天就不废话了,我主要想说的是怎么用Swagger Editor和UI进行接口对接。

折腾Swagger Editor和Swagger UI

在github上搜索,相信聪明的你肯定能打开这两个神器的资源界面,然后下载,存放目录随便。

下载

git clone https://github.com/swagger-api/swagger-editor.git
git clone https://github.com/swagger-api/swagger-ui.git

用git客户端下载其实挺慢的,建议直接下载zip,然后解压就行,速度杠杠滴。

"安装"配置

  1. 我是将两个目录组织在同一个文件夹下了,对于大前端,我们一定会用Node,我用下面的命令初始化了一下这个文件夹(工程)
npm init -y
  1. 将下载的Swagger-editor文件夹拷贝到该工程目录下,并Swagger-ui目录下的dist修改为swagger-ui再拷贝到该工程下面;形成如下目录:



|--swagger
|--swagger-editor
|--swagger-ui
|--node_modules
|--package.json
|-- README.md 


  1. 在swagger根目录执行如下代码
yarn add http-server -D
  1. 修改package.json中的script部分
{
  "name": "yanqiapi",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev": "./node_modules/.bin/http-server ./swagger-editor -o ",
    "build": "./node_modules/.bin/http-server ./swagger-ui -o"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {},
  "dependencies": {
    "http-server": "^0.10.0"
  }
}

启动swagger-editor

执行如下命令, 不出意外浏览器自动打开http://locahost:8081/, 意外也就是有程序占用了8081端口。

yarn run dev

image

使用需要用到yaml语言,这个语言也比较常用,是一种在xml和json之间转换数据的中间格式;使用场景比如持续集成(CI)traivs就在使用这个语言进行配置测试条件,打开页面后,swagger-editor默认提供了一份.yml的文档,可以看到左边是yaml格式的文档,右边是swagger-editor转换成的接口文档,还是比较清晰的,他的智能提示也是非常人性化的;要学习yaml,直接参考官网就可以了,半小时保证会。

启动swagger-ui

执行如下命令启动swagger-ui;如过8081端口被占用,http-server会自动启动另一个端口

yarn run build

image

打开的这个页面是不是很熟悉,对,就是editor中右边的页面;在真实的环境中,我们会有自己的数据,那怎么实现从editor到ui的数据传输呢?答案就在editor,editor有导出json的功能,而swagger-ui支持yaml转换为json的文件,将其放在和swagger-ui目录下与index.hmtl同一目录下即可。

  1. 导出JSON文件

点击editor导航栏中的File,在弹出的下拉菜单中选择Download JSON,浏览器自动下载由yaml已经转换好的JSON文档

image

  1. 拷贝

将导出的JSON文件拷贝至ui文件夹下,我将其命名为API.json;打开ui下的index.html文件,编辑window.load中的ui.url为API.json,其实对应的是一个路径,可以自己改。

// ...
window.onload = function() {
  // Build a system
  const ui = SwaggerUIBundle({
    url: "API.json",
    dom_id: '#swagger-ui',
    deepLinking: true,
    // ...
  1. 刷新浏览器查看结果

image

  1. 我的成果

image

image
image

总结

swagger-editor和swagger-ui的使用可以说是非常简单,对于在不动手写代码的情况下,前端和后端的沟通就会非常简单有效。对于再开发环境中的配置,这就不涉及了,工具是为了高效工作的,不是折腾的,so..到此为止。

目录
相关文章
|
7月前
|
数据可视化 Linux API
如何在Linux使用docker部署Swagger Editor并实现无公网IP远程协同编辑API文档
如何在Linux使用docker部署Swagger Editor并实现无公网IP远程协同编辑API文档
|
7月前
|
数据可视化 Linux API
使用Docker安装部署Swagger Editor并远程访问编辑API文档
使用Docker安装部署Swagger Editor并远程访问编辑API文档
137 0
|
7月前
Swagger问题:No mapping for GET /swagger-ui.html报错
Swagger问题:No mapping for GET /swagger-ui.html报错
866 0
解决Swagger UI 中文乱码问题
解决办法如下: 1、file --> Settings --> file encodings 2、在弹出的对话框右侧,将所有的Encoding(一共四个已经标红)全部改为**“UTF-8”**
730 0
|
Go API 微服务
Golang微服务框架Kratos轻松集成并使用Swagger UI
在我们的开发当中,调试接口,测试接口,提供接口文档给前端,那都是非常频繁的工作内容。 那么,我们需要用什么方法和工具来实施这些工作内容呢? Swagger,或者说OpenAPI。
295 0
|
前端开发 测试技术 API
SpringBoot-25-SpringBoot整合Swagger2以及Swagger-Bootstrap-Ui的使用
我们在之前的文章中讲过了RESTful风格设计API,没有看过的小伙伴可以查找之前的文章看一下,那么在针对这些API我们需要怎么进行测试呢?也许你会说你通过单元测试、postman、IDEA的http client
91 0
|
数据可视化 Java API
【Spring Boot 快速入门】五、Spring Boot集成Swagger UI
【Spring Boot 快速入门】五、Spring Boot集成Swagger UI
1237 0
【Spring Boot 快速入门】五、Spring Boot集成Swagger UI
|
前端开发 搜索推荐 Java
java swagger好看的ui界面
java swagger好看的ui界面
|
Java API Spring
Swagger UI 2.0和3.0学习笔记
Swagger UI 2.0和3.0学习笔记