Swagger -----自动生成接口文档
测试demo:Spring+SpringMvc+Mybatis-Plus+SpringBoot+RESTful风格Api +Maven
1,引入依赖
1 2 3 4 5 6 7 8 9 10 11 12 | <!--swagger--> < dependency > < groupId >io.springfox</ groupId > < artifactId >springfox-swagger2</ artifactId > < version >2.7.0</ version > </ dependency > <!--swagger ui--> < dependency > < groupId >io.springfox</ groupId > < artifactId >springfox-swagger-ui</ artifactId > < version >2.7.0</ version > </ dependency > |
2,SwaggerConfig
package com.mangoubiubiu.config;
import com.google.common.base.Predicates;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration//配置类
@EnableSwagger2//swagger注解
public class SwaggerConfig {
@Bean
public Docket webApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("webApi")
.apiInfo(webApiInfo())
.select()
//接口中包含admin error 就不显示
.paths(Predicates.not(PathSelectors.regex("/admin/.*")))
.paths(Predicates.not(PathSelectors.regex("/error.*")))
.build();
}
private ApiInfo webApiInfo(){
return new ApiInfoBuilder()
.title("网站-课程中心API文档")
.description("本文档描述了课程中心微服务接口定义")
.version("1.0")
.contact(new Contact("Mangoubiubiu", "https://www.cnblogs.com/mangoubiubiu/", "0000000000@qq.com"))
.build();
}
}
3,Controller
package com.mangoubiubiu.edu.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mangoubiubiu.commonutils.R; import com.mangoubiubiu.edu.entity.Teacher; import com.mangoubiubiu.edu.service.TeacherService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import java.util.List; /** * <p> * 讲师 前端控制器 * </p> * * @author mangoubiubiu * @since 2020-09-22 */ @Api(description = "讲师管理") @RestController @RequestMapping("/eduservice/edu-teacher") public class TeacherController { @Autowired private TeacherService service; //rest风格 /** * 查询所有的教师信息 * @return */ @ApiOperation(value = "所有的教师信息") @GetMapping("findAll") public R findAllTeacher(){ List<Teacher> list= service.list(null); return R.ok().data("items",list); } /** * @DeleteMapping("{id}") 通过路径传递 * @PathVariable String id 得到路径中的id值 * @param id * @return */ @ApiOperation(value = "逻辑删除接口") @DeleteMapping("{id}") public R removeTeacher(@ApiParam(name="id",value = "讲师ID",required = true) @PathVariable String id){ boolean flag=service.removeById(id); if(flag==true){ return R.ok(); }else { return R.error(); } } /** *分页 * @param current 当前页 * @param limit 记录数 * @return */ @ApiOperation(value = "查询教师信息分页接口") @GetMapping("pageTeacher/{current}/{limit}") public R pageListTeacher(@ApiParam(name="current",value = "当前页",required = true) @PathVariable Long current, @ApiParam(name="limit",value = "记录数",required = true) @PathVariable Long limit){ //current:当前页,size:每页的记录数 Page<Teacher> pageInfo=new Page<>(current,limit); //调用方法时底层会做封装,封装到pageInfo里面 service.page(pageInfo,null); long total= pageInfo.getTotal();//总记录数 List<Teacher> records = pageInfo.getRecords();//所有的数据list return R.ok().data("total",total).data("rows",records); } /** * 添加教师接口 * @param * @return */ @PostMapping("addTeacher") public R addTeacher(@RequestBody Teacher eduTeacher){ boolean flag= service.save(eduTeacher); if(flag==true){ return R.ok(); }else { return R.error(); } } // 根据讲师id查询讲师信息 @GetMapping("getTeacher/{id}") public R getTeacher(@PathVariable String id){ Teacher eduTeacher = service.getById(id); return R.ok().data("teacher",eduTeacher); } //讲师修改功能 @PostMapping("updateTeacher") public R updateTeacher(@RequestBody Teacher eduTeacher){ boolean flag= service.updateById(eduTeacher); if(flag==true){ return R.ok(); }else { return R.error(); } } }
访问地址:http://127.0.0.1:8001/swagger-ui.html
效果:
本文作者:KwFruit
本文链接:https://www.cnblogs.com/mangoubiubiu/p/13727310.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)