百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

SpringBoot 使用Swagger2打造在线接口文档(附汉化教程)

liuian 2025-02-26 12:44 57 浏览

作者:yizhiwazi
链接:
https://www.jianshu.com/p/7e543f0f0bd8

序言:编写和维护接口文档是每个程序员的职责,根据Swagger2可以快速帮助我们编写最新的API接口文档,再也不用担心开会前仍忙于整理各种资料了,间接提升了团队开发的沟通效率。此外,本教程还额外提供了UI汉化教程,去除阅读官方英文界面的烦恼。(目前Swagger汉化教程是找不到的,因为官方手册实在写得太烂。。)

SpringBoot + Swagger2 UI界面-汉化教程

1.默认的英文界面UI

想必很多小伙伴都曾经使用过Swagger,但是打开UI界面之后,却是下面这样的画风,纯英文的界面并不太友好,作为国人还是习惯中文界面。

号称世界最流行的API工具总不该不支持国际化属性吧,楼主在官方使用手册找到关于本地化和翻译的说明:

也就是说,只要添加翻译器和对于的译文JS就可以显示中文界面了。(使用IDEA 双击Shift 快速找到swagger-ui.html 入口文件)

2.定制中文界面

2.1 添加首页和译文

重点来了,在src/main/resources目录下创建META-INF\resources目录,然后创建一个名称为"swagger-ui.html" 的HTML文件。如图:

注意文件名不要起错,接下来将下面这段内容原封不动的拷贝进去。




 
 Swagger UI
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 






OK 大功告成 我们访问
http://localhost:8080/swagger-ui.html 看看显示效果:

注:关于国际化,直接在Github下载好Swagger-UI的源码,将swagger-ui.html替换成上文,直接发布到Maven私服仓库,使用效果更佳。

2.2 更详细的译文翻译(非必需)

如果想进一步调整译文,可以在META-INF\resources\webjars\springfox-swagger-ui\lang 目录下添加zh-cn.js文件.

然后在译文(zh-cn.js )根据个人喜好来添加翻译内容,如下

'use strict';

/* jshint quotmark: double */
window.SwaggerTranslator.learn({
 "Warning: Deprecated":"警告:已过时",
 "Implementation Notes":"实现备注",
 "Response Class":"响应类",
 "Status":"状态",
 "Parameters":"参数",
 "Parameter":"参数",
 "Value":"值",
 "Description":"描述",
 "Parameter Type":"参数类型",
 "Data Type":"数据类型",
 "Response Messages":"响应消息",
 "HTTP Status Code":"HTTP状态码",
 "Reason":"原因",
 "Response Model":"响应模型",
 "Request URL":"请求URL",
 "Response Body":"响应体",
 "Response Code":"响应码",
 "Response Headers":"响应头",
 "Hide Response":"隐藏响应",
 "Headers":"头",
 "Try it out!":"试一下!",
 "Show/Hide":"显示/隐藏",
 "List Operations":"显示操作",
 "Expand Operations":"展开操作",
 "Raw":"原始",
 "can't parse JSON. Raw result":"无法解析JSON. 原始结果",
 "Example Value":"示例",
 "Click to set as parameter value":"点击设置参数",
 "Model Schema":"模型架构",
 "Model":"模型",
 "apply":"应用",
 "Username":"用户名",
 "Password":"密码",
 "Terms of service":"服务条款",
 "Created by":"创建者",
 "See more at":"查看更多:",
 "Contact the developer":"联系开发者",
 "api version":"api版本",
 "Response Content Type":"响应Content Type",
 "Parameter content type:":"参数类型:",
 "fetching resource":"正在获取资源",
 "fetching resource list":"正在获取资源列表",
 "Explore":"浏览",
 "Show Swagger Petstore Example Apis":"显示 Swagger Petstore 示例 Apis",
 "Can't read from server. It may not have the appropriate access-control-origin settings.":"无法从服务器读取。可能没有正确设置access-control-origin。",
 "Please specify the protocol for":"请指定协议:",
 "Can't read swagger JSON from":"无法读取swagger JSON于",
 "Finished Loading Resource Information. Rendering Swagger UI":"已加载资源信息。正在渲染Swagger UI",
 "Unable to read api":"无法读取api",
 "from path":"从路径",
 "server returned":"服务器返回"
});

===========接下来,正式进入Swagger2的使用教程===========

SpringBoot + Swagger2 使用教程

1. 引入依赖

 
 
  
 org.springframework.boot
 spring-boot-starter-web
 
 
 io.springfox
 springfox-swagger2
 2.7.0
 
 
 io.springfox
 springfox-swagger-ui
 2.7.0
 
  
 org.springframework.boot
 spring-boot-devtools
 
 
 org.springframework.boot
 spring-boot-starter-test
 test
 
 

2. 添加配置

@Configuration //标记配置类
@EnableSwagger2 //开启在线接口文档
public class Swagger2Config {
 /**
 * 添加摘要信息(Docket)
 */
 @Bean
 public Docket controllerApi() {
 return new Docket(DocumentationType.SWAGGER_2)
 .apiInfo(new ApiInfoBuilder()
 .title("标题:某公司_用户信息管理系统_接口文档")
 .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...")
 .contact(new Contact("一只袜子", null, null))
 .version("版本号:1.0")
 .build())
 .select()
 .apis(RequestHandlerSelectors.basePackage("com.hehe.controller"))
 .paths(PathSelectors.any())
 .build();
 }
}

3. 编写接口文档

Swagger2 基本使用:

  • @Api 描述类/接口的主要用途
  • @ApiOperation 描述方法用途
  • @ApiImplicitParam 描述方法的参数
  • @ApiImplicitParams 描述方法的参数(Multi-Params)
  • @ApiIgnore 忽略某类/方法/参数的文档

Swagger2 使用注解来编写文档:

Swagger2编写接口文档相当简单,只需要在控制层(Controller)添加注解来描述接口信息即可。例如:

package com.hehe.controller;

@Api("用户信息管理")
@RestController
@RequestMapping("/user/*")
public class UserController {

 private final static List userList = new ArrayList<>();

 {
 userList.add(new User("1", "admin", "123456"));
 userList.add(new User("2", "jacks", "111111"));
 }

 @ApiOperation("获取列表")
 @GetMapping("list")
 public List userList() {
 return userList;
 }

 @ApiOperation("新增用户")
 @PostMapping("save")
 public boolean save(User user) {
 return userList.add(user);
 }

 @ApiOperation("更新用户")
 @ApiImplicitParam(name = "user", value = "单个用户信息", dataType = "User")
 @PutMapping("update")
 public boolean update(User user) {
 return userList.remove(user) && userList.add(user);
 }

 @ApiOperation("批量删除")
 @ApiImplicitParam(name = "users", value = "N个用户信息", dataType = "List")
 @DeleteMapping("delete")
 public boolean delete(@RequestBody List users) {
 return userList.removeAll(users);
 }
}

package com.hehe.entity;

public class User {

 private String userId;
 private String username;
 private String password;

 public User() {

 }

 public User(String userId, String username, String password) {
 this.userId = userId;
 this.username = username;
 this.password = password;
 }

 @Override
 public boolean equals(Object o) {
 if (this == o) {
 return true;
 }
 if (o == null || getClass() != o.getClass()) {
 return false;
 }

 User user = (User) o;

 return userId != null ? userId.equals(user.userId) : user.userId == null;
 }

 @Override
 public int hashCode() {
 int result = userId != null ? userId.hashCode() : 0;
 result = 31 * result + (username != null ? username.hashCode() : 0);
 result = 31 * result + (password != null ? password.hashCode() : 0);
 return result;
 }

 public String getUserId() {
 return userId;
 }

 public void setUserId(String userId) {
 this.userId = userId;
 }

 public String getUsername() {
 return username;
 }

 public void setUsername(String username) {
 this.username = username;
 }

 public String getPassword() {
 return password;
 }

 public void setPassword(String password) {
 this.password = password;
 }
}

4. 查阅接口文档

编写文档完成之后,启动当前项目,在浏览器打开:
[
http://localhost:8080/swagger-ui.html ] , 看到效果如下:

来看看save 方法的具体描述,可以看到Swagger 2.7.0 版本对参数列表进行了改版,直接输入参数,更方便进行测试操作:

5. 测试接口

Swagger2的强大之处不仅在于快速生成整洁优雅的RestAPI文档,同时支持接口方法的测试操作(类似于客户端PostMan)。

以查询用户列表为例,无参数输入,直接点击“试一下”按钮:

然后可以看到以JSON格式返回的用户列表信息,很方便有木有:

好了,关于Swagger2在项目中的使用教程就到这里。

相关推荐

tplink说明书图片(tp-link路由器说明书步骤图)

第一步连接路由器WIFI在手机获取IP地址里找到路由器网关地址,第二步在浏览器地址栏输入路由器网关地址,之后会跳转到路由器管理员登录界面,输入账号密码就可以进入路由后台管理路由,如果提示路由器密码错误...

如何不安装flash玩4399(现在4399不提供flash如何玩游戏)

没有flash是玩不了的,需要开启flash才可以。1、首先打开浏览器,进入4399的游戏页面。2、进入游戏页面后,点击【已被屏蔽】文字。3、然后右上角会出现窗口,点击【管理】按钮。4、进入管理页面后...

chrome download apk(chromedownloadapk in english)

手机下载安装的第三方应用出现问题,无法正常使用,建议按照以下方法操作:1.关闭重新启动该应用。2.建议将此软件卸载重新安装尝试。3.更换其他版本尝试。4.更新下手机系统版本后安装尝试5.备份手机数据(...

qq空间官网手机登录网页版(qq空间官网登陆入口)
qq空间官网手机登录网页版(qq空间官网登陆入口)

z.qq.com可以通过以下方式登录手机QQ空间:1、使用手机登录手机腾讯网3g.qq.com,点击“空间”,根据提示QQ号码和QQ密码就可以登录;2、通过手机直接输入手机QQ空间网址z.qq.com,根据提示操作即可登录;3、下载手机Q...

2025-12-22 13:55 liuian

windows11我的电脑在哪里打开

1/6通过“开始”进入“设置”-“时间和语言”。2/6在“时间和语言”界面选择“区域”3/6这里我们将区域更改位“新加披”,退出。4/6打开微软自带的市场,搜索“你的手机”获取并下载。5/6安装完成后...

win10怎么取消开机自启动(win10如何关闭开机自动启动)

要关闭Windows10的开机自动启动程序,你可以按下Win+R键,输入"msconfig"并按回车键打开系统配置工具。在"启动"选项卡中,你可以看到所有开机自动...

手机cpu排名2025(手机cpu排名榜)

一、2022手机CPU性能综合排名前八名手机CPU:1、型号:苹果A16---综合分数:暂无2、型号:骁龙8gen1---综合分数:42333、联发科天玑9000---综合分数:38724、...

论坛系统(论坛系统数据流图)

BBS是电子布告栏系统的简称,一种网站系统,也是目前流行网络论坛的前身。它允许用户使用终端程序通过调制解调器拨接或者因特网来进行连接,BBS站台提供布告栏、分类讨论区、新闻阅读、软件下载与上传、游戏、...

hp1020plus打印机无法打印(惠普1020plus打印机突然不能打印了)

 删除惠普打印机驱动和软件:1.如果你的打印机已通过USB连接到电脑,断开USB连接;2.打开控制面板—程序和功能(卸载或更改应用程序);3.在软件列表中找到惠普打印机,将其卸载;4.重启电脑...

wifi密码破解器电脑版(wifi密码破解工具电脑版)

肯定不是万能钥匙这种“破解”wifi的东西。不是一两次见到把万能钥匙当做破解wifi用的人了,但实际上那玩意就是个分享wifi的软件。你连上一个wifi,密码就会被分享到云端(可以不分享),别...

手机临时文件夹在哪个位置(手机临时文件夹在哪个位置找)

1.手机文件临时文件是指在手机使用过程中产生的临时文件。2.手机应用程序在运行时需要产生一些临时文件,如缓存文件、日志文件、临时下载文件等,这些文件可以提高应用程序的运行效率和用户体验。但是,这些...

安卓10系统下载(安卓10 下载)

方法及步骤:  其实使用安卓车机下载歌曲的方法十分的简单,具体操作步骤和安卓手机一模一样。  首先我们需要在车机的应用商店上,下载一个音乐播放器,例如网易云音乐或者QQ音乐等。  下载完成后点击进入...

华硕人工客服24小时吗(华硕售后人工客服)

华硕服务中心广东省惠州市惠东县城平深路(创富斜对面)惠东同心电脑城1L11(1.3km)笔记本电脑,平板电脑华硕服务中心广东省惠州市惠东县平山镇同心电脑城1F26(1.3km)笔记本电脑,平...

电脑音量小喇叭不见了(电脑声音喇叭图标不见了怎么办)

如果您电脑上的小喇叭(扬声器)不见了,可以尝试以下方法找回:1.检查设备管理器:在Windows下,右键点击“我的电脑”(或此电脑)->点击“属性”->点击“设备管理器”,查看“声音、视...

腾达路由器手机设置教程(腾达路由器手机设置教程视频)

用手机设置腾达路由器的方法如下:1在手机上打开浏览器,输入路由器背面的管理IP和用户及对应的密码2一般第一次打开,默认会跳出设置向导,准备好宽带用户名和密码,3按向导提示输入相应内容4在无线设置的安全...