Java教程共享Swagger的使用方法:1.swagger介绍
目前,开发往往采用前后端分离的模型,前端只需调用接口进行呈现,前端与后端的唯一联系就变成了API接口。 因此,API文档变得越来越重要。 swagger是一个方便的框架,可以更好地创建API文档。 swagger还可以模拟http请求调用。
采取了大部分方法。 Vue SpringBoot,Vue在js中渲染页面,后端将数据传递给js。 初始前端只负责写页面,将写的HTML页面传递给后端,后端使用模板引擎Jsp、Thymeleaf和freemarker开发。
前后端分离的好处:各自开发,相对独立,松散耦合。 前后端通过API交互,后端为前端提供接口,前端去调用该接口,但前后端团队成员无法及时协商,可能会出现一些问题。 解决方案:早期实时更新文档,非常繁琐,后来用postman进行了一些测试。
2.springboot中的swagger集成使用说明:
导入依赖关系
io.springfoxspringfox-swagger-ui
2.9.2
io.springfox springfox-swagger2
2.9.2
创建配置类
@Configuration
打开@enableswagger2//swagger2
公共类swagger配置{
}
然后,开始测试运行并显示下一页。
手动配置实例并修改SwaggerConfig配置类
package com.qf.swagger.config;
importorg.spring帧work.context.annotation.bean;
importorg.spring framework.context.annotation.configuration;
importspringfox.documentation.builders.apiinfobuilder;
importspringfox.documentation.builders.path selectors;
importspringfox.documentation.builders.requesthandlerselectors;
importspringfox.documentation.service.API info;
importspringfox.documentation.SPI.documentation type;
importspringfox.documentation.spring.web.plugins.docket;
importspringfox.documentation.swagger2. annotations.enable swagger 2;
@Configuration
打开@enableswagger2//swagger2
公共类swagger配置{
配置Swagger的Bean实例
@Bean
publicdocketswaggerspringmvcplugin (
返回新文档(文档类型. swagger _2)。
. APIinfo(APIinfo );
}
//API配置的基本信息(显示在http://项目的实际地址/swagger-ui.html页面上) ) ) ) ) ) ) ) ) ) ) ) )。
隐私API info API info (
返回新apiinfobuilder ()
. title (“测试API文档标题”
. description (“测试api接口文档说明”)
. termsofserviceurl (" http://www.Baidu.com "
.版本(“1.0”)
. build (;
}
}
然后,重新启动试运行。
创建实体类
package com.qf.swagger.entity;
import io.swagger.annotations.API模型;
import io.swagger.annotations.apimodelproperty;
@ApiModel (用户实体类)
公共类用户{
@ApiModelProperty (“用户名”
私有字符串用户名称;
@ApiModelProperty (“密码”
私有字符串密码;
公共字符串获取器名称
返回用户名称;
}
publicvoidsetusername (字符串用户名称
) {this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
创建controller
package com.qf.swagger.controller;
import com.qf.swagger.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(description =“用户管理API”)
@RestController
public class UserController {
@ApiOperation(“添加用户”)
@PostMapping("/add")
public User add(@ApiParam(“用户名”) String username,@ApiParam(“密码”) String password){
return new User();
}
@ApiOperation(“修改用户”)
@PostMapping("/update")
public String update(){
return “修改”;
}
@ApiOperation(“删除用户”)
@GetMapping("/delete")
public Boolean delete(@ApiParam(“用户编号”) Integer id){
return true;
}
@ApiOperation(“查询用户”)
@RequestMapping("/query")
public User query(){
User user = new User();
user.setUsername(“jack”);
user.setPassword(“1234”);
return user;
}
}
修改SwaggerConfig配置类
package com.qf.swagger.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2//开启Swagger2
public class SwaggerConfig {
//配置Swagger的Bean实例
@Bean
public Docket swaggerSpringMvcPlugin() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.groupName(“jxdlz”)//分组名称(可以创建多个Docket就有多个组名)
.enable(true)//enable表示是否开启Swagger
.select()
//RequestHandlerSelectors指定扫描的包
.apis(RequestHandlerSelectors.basePackage(“com.qf.swagger.controller”))
.build();
}
//配置API的基本信息(会在http://项目实际地址/swagger-ui.html页面显示)
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title(“测试API文档标题”)
.description(“测试api接口文档描述”)
.termsOfServiceUrl(“http://www.baidu.com”)
.version(“1.0”)
.build();
}
}
swagger通过注解表明该接口会生成文档,包括接口名、请求方法、参数、返回信息
@Api:修饰整个类,描述Controller的作用
@ApiOperation:描述一个类的一个方法,或者说一个接口
@ApiModel:用对象来接收参数 ,修饰类
@ApiModelProperty:用对象接收参数时,描述对象的一个字段
@ApiResponse:HTTP响应其中1个描述
@ApiResponses:HTTP响应整体描述,一般描述错误的响应
@ApiIgnore:使用该注解忽略这个API
@ApiError :发生错误返回的信息
@ApiParam:单个参数描述
@ApiImplicitParam:一个请求参数,用在方法上
@ApiImplicitParams:多个请求参数