欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringBoot结合Swagger2自动生成api文档的方法

程序员文章站 2023-12-02 23:38:52
首先在pom.xml中添加如下依赖,其它web,lombok等依赖自行添加

首先在pom.xml中添加如下依赖,其它web,lombok等依赖自行添加

  <dependency>
      <groupid>io.springfox</groupid>
      <artifactid>springfox-swagger2</artifactid>
      <version>2.7.0</version>
    </dependency>

    <dependency>
      <groupid>io.springfox</groupid>
      <artifactid>springfox-swagger-ui</artifactid>
      <version>2.7.0</version>
    </dependency>

swaggerconfig.java是swagger2的配置类

@configuration
@enableswagger2
public class swaggerconfig {
  @bean
  public docket createrestapi() {
    return new docket(documentationtype.swagger_2)
        .apiinfo(apiinfo())
        .select()
        .apis(requesthandlerselectors.basepackage("cn.niit.controller"))
        .paths(pathselectors.any())
        .build();
  }

  private apiinfo apiinfo() {
    return new apiinfobuilder()
        .title("spring boot中使用swagger2")
        .description("首次尝试自动生成api文档为后期的前后端分离开发做准备")
        .termsofserviceurl("https://www.jianshu.com/u/2f60beddf923")
        .contact("wen")
        .version("1.0")
        .build();
  }
}

SpringBoot结合Swagger2自动生成api文档的方法

实体类user.java

@data
@allargsconstructor
@noargsconstructor
public class user {
  public user(string username, string password) {
    this.username = username;
    this.password = password;
  }

  private integer id;
  private string username;
  private string password;
}

新建一个控制类usercontroller.java,类下有个方法getalluser

@restcontroller
@api(description = "用户管理")
@requestmapping(value = "/hello",produces = application_json_value)
public class usercontroller {

  list<user>lists=new arraylist<>();

  @getmapping(value ="getalluser" )
  @apioperation(value = "用户列表",notes = "查询所有已注册过的用户详细信息")
  public list<user> getalluser()
  {
  lists.add(new user("wen","999"));
  lists.add(new user(2,"qian","666"));
  return lists;
  }
}

点击localhost:8888/swagger-ui.html(我在application.propertise中的server.port=8888)

 SpringBoot结合Swagger2自动生成api文档的方法

在类中再添加一个方法adduser

 @postmapping(value = "adduser")
  public user adduser(user user)
  {
    return user;
  }

实体类user.java的属性上添加如下注解

@apimodelproperty(value = "用户id")
  private integer id;
  @apimodelproperty(value = "用户名")
  private string username;
  @apimodelproperty(value = "密码")
  private string password;

创建用户时有些字段我们并不需要,可以加入如下注解

@apimodelproperty(hidden = true)

SpringBoot结合Swagger2自动生成api文档的方法

在类中再添加一个根据用户id查询用户的方法

  @getmapping(value = "getuserbyid/{id}")
  public user getuserbyid(@apiparam(value = "用户id")@pathvariable(value = "id")string id)
  {
    return new user(id,"步惊云","passwordjava");
  }

SpringBoot结合Swagger2自动生成api文档的方法

汉化成中文文档

在swagger相关的jar包

SpringBoot结合Swagger2自动生成api文档的方法 

SpringBoot结合Swagger2自动生成api文档的方法 

把meta-inf这个包复制到你当前项目的resources目录下

SpringBoot结合Swagger2自动生成api文档的方法 

这些是关键,剩下多余的包可自行删除

在swagger-ui.html的<head>部分添加如下代码

<!--国际化操作:选择中文版 -->
 <script src='webjars/springfox-swagger-ui/lang/translator.js' type='text/javascript'></script>
 <script src='webjars/springfox-swagger-ui/lang/zh-cn.js' type='text/javascript'></script>

汉化完成,我们也可以在zh_cn.js中自定义中文名称

SpringBoot结合Swagger2自动生成api文档的方法

另一种生成文档的方式请参见

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。