赞
踩
文档地址:https://doc.xiaominfo.com/
knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案。
前后端分离开发模式中,api文档是最好的沟通方式。
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。
1、及时性 (接口变更后,能够及时准确地通知相关前后端开发人员)
2、规范性 (并且保证接口的规范性,如接口的地址,请求方式,参数及响应格式和错误信息)
3、一致性 (接口信息一致,不会出现因开发人员拿到的文档版本不一致,而出现分歧)
4、可测性 (直接在接口文档上进行测试,以方便理解业务)
添加依赖:
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.8</version>
</dependency>
配置文件
package com.iflytek; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.ParameterBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.schema.ModelRef; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.service.Parameter; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; import java.util.ArrayList; import java.util.List; /** * knife4j配置信息 */ @Configuration @EnableSwagger2WebMvc public class Knife4jConfig { @Bean public Docket adminApiConfig() { List<Parameter> pars = new ArrayList<>(); ParameterBuilder tokenPar = new ParameterBuilder(); tokenPar.name("token") .description("用户token") .defaultValue("") .modelRef(new ModelRef("string")) .parameterType("header") .required(false) .build(); pars.add(tokenPar.build()); //添加head参数end Docket adminApi = new Docket(DocumentationType.SWAGGER_2) .groupName("adminApi") .apiInfo(adminApiInfo()) .select() //只显示admin路径下的页面 .apis(RequestHandlerSelectors.basePackage("com.iflytek")) .paths(PathSelectors.regex("/admin/.*")) .build() .globalOperationParameters(pars); return adminApi; } private ApiInfo adminApiInfo() { return new ApiInfoBuilder() .title("后台权限管理系统-API文档") .description("本文档描述了后台管理系统微服务接口定义") .version("1.0") .contact(new Contact("lhyang", "https://gitee.com/bai-xiaoyun/auth_-system", "1978500345@qq.com")) .build(); } }
需要根据自己情况修改的地方
实体类添加注解:
@ApiModel(description = “”)
@ApiModelProperty(value = “”)
@Data @ApiModel(description = "角色") @TableName("sys_role") public class SysRole extends BaseEntity { private static final long serialVersionUID = 1L; //@NotBlank(message = "角色名称不能为空") @ApiModelProperty(value = "角色名称") @TableField("role_name") private String roleName; @ApiModelProperty(value = "角色编码") @TableField("role_code") private String roleCode; @ApiModelProperty(value = "描述") @TableField("description") private String description; }
controller层添加注解:
@Api(tags = “角色管理”)//tag标签
@ApiOperation(value = “获去全部角色列表”)
@Api(tags = "角色管理") @RestController @RequestMapping("/admin/system/sysRole") public class RoleController { @Autowired private RoleService roleService; @ApiOperation(value = "获取全部角色列表") @GetMapping("/findAll") public Result findAll() { List<SysRole> roleList = roleService.list(); return Result.ok(roleList); } }
访问地址:
http://localhost:8080/doc.html
@ApiParam 请求参数名称
@ApiOperation(value = "查询角色列表") @GetMapping("/{page}/{limit}") public Result selectRolePage( @ApiParam(name = "page" ,value = "当前页数",required = true) @PathVariable Integer page, @ApiParam(name = "limit",value ="每页条数",required = true ) @PathVariable Integer limit, //表单提交 SysRoleQueryVo sysRoleQueryVo){ IPage<SysRole> roleIPage =new Page<>(page,limit); //构建查询条件 QueryWrapper<SysRole> sysRoleQueryWrapper = new QueryWrapper<>(); String roleName = sysRoleQueryVo.getRoleName(); //传入的name不为空,则模糊查询 sysRoleQueryWrapper.like(roleName==null?false:true,"role_name",roleName); //得到分页信息 IPage<SysRole> pageModel = roleService.page(roleIPage,sysRoleQueryWrapper); return Result.ok(pageModel); }
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。