重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
小编给大家分享一下Spring boot集成swagger2如何生成接口文档,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
站在用户的角度思考问题,与客户深入沟通,找到蟠龙网站设计与蟠龙网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广、域名与空间、网络空间、企业邮箱。业务覆盖蟠龙地区。
一、Swagger介绍
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的web服务。目标是使客户端和文件系统作为服务器以同样的速度来更新文件的方法,参数和模型紧密集成到服务器。这个解释简单点来讲就是说,swagger是一款可以根据restful风格生成的接口开发文档,并且支持做测试的一款中间软件。
二、使用swagger优势
1、对于后端开发人员来说
不用再手写Wiki接口拼大量参数,避免手写错误
对代码侵入性低,采用全注解的方式,开发简单
方法参数名修改、新增、减少参数都可以直接生效,不用手动维护
缺点:增加了开发成本,写接口还得再写一套参数配置
2、对前端开发来说
后端只需要定义好接口,会自动生成文档,接口功能、参数一目了然
联调方便,如果出了问题,直接测试接口,实时检查参数和返回值,就可以快速定位是前端还是后端的问题
3、对于测试来说
但对于测试没有前端界面UI的功能,可以直接用它来测试接口
操作简单,不用了解具体代码就可以操作
三、springboot集成swagger使用
1、新建maven项目(结构如下:)
2、配置pom.xml文件
4.0.0 org.springframework.boot spring-boot-starter-parent 2.1.3.RELEASE com.dds.sbswagger sb-swagger 0.0.1-SNAPSHOT sb-swagger Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test io.springfox springfox-swagger2 2.9.2 io.springfox springfox-swagger-ui 2.9.2 org.projectlombok lombok 1.18.6 org.springframework.boot spring-boot-maven-plugin
3、程序启动类
package com.dds.sbswagger; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author dds */ @SpringBootApplication @Slf4j public class SbSwaggerApplication { public static void main(String[] args) { SpringApplication.run(SbSwaggerApplication.class, args); log.info("\n----------------------------------------------------------\n\t" + "Application demo is running! Access URLs:\n\t" + "swagger-ui: \thttp://127.0.0.1:8080/swagger-ui.html\n\t" + "----------------------------------------------------------"); } }
4、SwaggerConfig配置类
package com.dds.sbswagger.config; import io.swagger.annotations.ApiOperation; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; 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; import java.util.Collections; /** * @author DDS * @date 2019/9/10 13:55 */ @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.dds.sbswagger.controller")) //加了ApiOperation注解的类,才生成接口文档 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) .paths(PathSelectors.any()) .build() .apiInfo(apiInfo()); } private ApiInfo apiInfo() { return new ApiInfo( "Spring Boot项目集成Swagger实例文档", "我的微信公众号:大道七哥,欢迎大家关注。", "API V1.0", "Terms of service", new Contact("大道七哥", "https://www.cnblogs.com/jstarseven/", "jstarseven@163.com"), "Apache", "http://www.apache.org/", Collections.emptyList()); } }
5、实体类model
package com.dds.sbswagger.model; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author DDS * @date 2019/9/10 13:55 */ @ApiModel("用户实体") @Data public class User { /** * 用户Id */ @ApiModelProperty("用户id") private int id; /** * 用户名 */ @ApiModelProperty(value = "用户姓名", example = "zhangdan", required = true) private String name; /** * 用户地址 */ @ApiModelProperty(value = "用户地址", example = "北京市海淀区", required = true) private String address; /** * 用户手机号 */ @ApiModelProperty(value = "用户手机号", example = "15689652367", required = true) private String phone; /** * 用户年龄 */ @ApiModelProperty(value = "用户年龄", example = "24", required = true) private Integer age; }
6、接口开发
package com.dds.sbswagger.controller; import com.dds.sbswagger.model.User; import io.swagger.annotations.*; import org.springframework.web.bind.annotation.*; /** * @author DDS * @date 2019/9/10 13:55 */ @RestController @RequestMapping("/user") @Api(tags = "用户相关接口", description = "提供用户相关的Rest API") public class UserController { @PostMapping("/add") @ApiOperation(value = "新增用户接口", notes = "手机号、密码都是必输项,年龄随边填,但必须是数字") @ApiImplicitParams({ @ApiImplicitParam(name = "name", value = "用户名称", required = true, paramType = "form"), @ApiImplicitParam(name = "address", value = "用户地址", required = true, paramType = "form"), @ApiImplicitParam(name = "phone", value = "用户手机号", required = true, paramType = "form"), @ApiImplicitParam(name = "age", value = "用户年龄", required = true, paramType = "form", dataType = "Integer") }) public boolean addUser(@RequestBody User user) { return false; } @ApiOperation("通过id查找用户接口") @GetMapping("/find/{id}") public User findById(@PathVariable("id") int id) { return new User(); } @ApiOperation("更新用户信息接口") @PutMapping("/update") @ApiResponses({ @ApiResponse(code = 400, message = "请求参数没填好"), @ApiResponse(code = 404, message = "请求路径没有或页面跳转路径不对"), @ApiResponse(code = 405, message = "未知错误") }) public boolean update(@RequestBody User user) { return true; } @ApiOperation("删除用户接口") @DeleteMapping("/delete/{id}") public boolean delete(@PathVariable("id") int id) { return true; } }
7、swagger界面显示
看完了这篇文章,相信你对“Spring boot集成swagger2如何生成接口文档”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!