- 首页 > 生活百科 > >
前后端分离开发,后端需要编写接?说明?档,会耗费?较多的时间 。swagger 是?个?于?成服务器接?的规范性?档,并且能够对接?进?测试的?具 。
作用
使用步骤
- 添加依赖
<!--swagger--><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.9.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.9.2</version></dependency>
- 写配置类
SwaggerConfig
/** * SwaggerConfig 接口文档配置类 */@Configuration@EnableSwagger2public class SwaggerConfig {/*** 配置接口文档生成规则*/@Beanpublic Docket getDocket() {// 设置文档生成规则return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()) // 设置文档信息.select()// 设置哪个包下的类需要生成文档.apis(RequestHandlerSelectors.basePackage("com.luis.fmmall.controller")).paths(PathSelectors.any()) // 定义哪些路径的接口需要生成文档.build();}/*** 设置文档信息*/private ApiInfo apiInfo() {return new ApiInfoBuilder().title("xxx接口文档").description("这里是相关描述").version("1.0").contact(new Contact("luis","https://www.cnblogs.com/luisblog","xxx@qq.com")).build();}}
- 在控制器类上使用 Swagger 的注解进行相关说明
示例如下:
@RestController@RequestMapping("/user")@Api(tags = "用户管理", value = "https://www.huyubaike.com/biancheng/提供用户的登陆、注册、修改等功能") //类说明public class UserController {@Resourceprivate UserService userService;@GetMapping("/login")@ApiOperation(value = "https://www.huyubaike.com/biancheng/登陆验证", notes = "用户登陆检查") //方法名说明@ApiImplicitParams({ //参数说明@ApiImplicitParam(dataType = "string", name = "username", value = "https://www.huyubaike.com/biancheng/用户名", required = true),@ApiImplicitParam(dataType = "string", name = "password", value = "https://www.huyubaike.com/biancheng/用户密码", required = false, defaultValue = "https://www.huyubaike.com/biancheng/123")})public ResultVo login(@RequestParam("username") String name,@RequestParam(value = "https://www.huyubaike.com/biancheng/password", defaultValue = "https://www.huyubaike.com/biancheng/123") String pwd) {return userService.checkLogin(name, pwd);}}
- 启动 SpringBoot 应用,访问
http://localhost:8080/swagger-ui.html
效果如下:
文章插图
常用注解说明
@Api
:类注解,使用在控制器类上,对类进行说明
控制器类 UserController 示例:
@Api(tags = "用户管理", value = "https://www.huyubaike.com/biancheng/提供用户的登陆、注册、修改等功能") //类说明public class UserController {}
@ApiOperation
:方法注解,使用在方法上,对方法名进行说明
@ApiImplicitParam
和 @ApiImplicitParams
:方法注解,使用在方法上 , 对方法的形参进行说明
单个形参使用 @ApiImplicitParam
,多个形参使用 @ApiImplicitParams
控制器类 UserController 的 login 方法示例:
@GetMapping("/login")@ApiOperation(value = "https://www.huyubaike.com/biancheng/登陆验证", notes = "用户登陆检查") //方法名说明@ApiImplicitParams({ //参数说明@ApiImplicitParam(dataType = "string", name = "username", value = "https://www.huyubaike.com/biancheng/用户名", required = true),@ApiImplicitParam(dataType = "string", name = "password", value = "https://www.huyubaike.com/biancheng/用户密码", required = false, defaultValue = "https://www.huyubaike.com/biancheng/123")})public ResultVo login(@RequestParam("username") String name,@RequestParam(value = "https://www.huyubaike.com/biancheng/password", defaultValue = "https://www.huyubaike.com/biancheng/123") String pwd) {return userService.checkLogin(name, pwd);}
@ApiModel
和 @ApiModelProperty
:当接?的形参或返回值为对象类型时,在实体类中添加此注解说明
接口的返回值为 ResultVo 对象示例:
@Data@NoArgsConstructor@AllArgsConstructor@ApiModel(value = "https://www.huyubaike.com/biancheng/ResultVo 对象", description = "返回给前端的封装数据") //返回的类说明public class ResultVo {// 响应给前端的状态码@ApiModelProperty("响应状态码") //属性说明private int code;// 响应给前端的提示信息@ApiModelProperty("提示信息") //属性说明private String msg;// 响应给前端的数据@ApiModelProperty("数据") //属性说明private Object data;}
推荐阅读
-
-
2022年护士年终工作总结 2022美工个人年终工作总结
-
-
-
-
抗皱六胜肽精华液的使用方法 六胜肽抗皱精华液使用方法
-
-
-
-
-
-
-
-
开元通宝680万图片 &#8211; 开元通宝2020价格
-
-
-
-
-
-