Springboot整合Swagger2组件

AI 摘要 / TL;DR

Springboot整合Swagger2组件 来源: https://www.ucloud.cn/yun/129890.html 作者: IT那活儿 发布日期: 发布于2023 01 11 13:20 Springboot整合Swagger2组件 现如今,前后端分离已经逐渐成为互联网项目一种标准的开发方式,前端与后端交

来源: https://www.ucloud.cn/yun/129890.html 作者: IT那活儿 发布日期: 发布于2023-01-11 13:20

Springboot整合Swagger2组件

现如今,前后端分离已经逐渐成为互联网项目一种标准的开发方式,前端与后端交给不同的人员开发,但是项目开发中的沟通成本也随之升高,这部分沟通成本主要在于前端开发人员与后端开发人员对WebAPI接口的沟通,Swagger2 就可以很好地解决,它可以动态生成Api接口文档,降低沟通成本,促进项目高效开发。

Swagger2组件配置

pom.xml添加依赖

       <dependency>           <groupId>io.springfoxgroupId>           <artifactId>springfox-swagger2artifactId>           <version>2.4.0version>       dependency>       <dependency>           <groupId>io.springfoxgroupId>           <artifactId>springfox-swagger-uiartifactId>           <version>2.4.0version>       dependency>

Swagger2配置类

@Configuration@EnableSwagger2public class Swagger2Config implements WebMvcConfigurer {   @Bean   public Docket createRestApi() {       return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()           .apis(RequestHandlerSelectors.basePackage("task.web")).paths(PathSelectors.any()).build();   }   private ApiInfo apiInfo() {       return new ApiInfoBuilder().title("Simple APIs").description("simple apis")           .termsOfServiceUrl("http://www.***").contact(new Contact("d***", "http://***", "***@shsnc.com"))           .version("1.0").build();   }   @Override   public void addResourceHandlers(ResourceHandlerRegistry registry) {       registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");       registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");   }}

编写测试 Controller

@Controller@RequestMapping("/test")@Api(tags = "用户接口")public class TestController {   @GetMapping("/login")   @ApiImplicitParams({@ApiImplicitParam(name = "username", value = "用户名", paramType = "query"),       @ApiImplicitParam(name = "password", value = "密码", paramType = "query")})   @ResponseBody   @ApiOperation(value = "用户登陆接口")   public String login(@RequestParam("username") String username, @RequestParam("password") String password) {       if ("shsnc".equals(username) && "123456".equals(password)) {           return "登陆成功";      } else {           return "登陆失败,用户名不存在或者密码错误";      }  }}

查看接口文档

启动我们的web工程,访问地址http://ip:port/contextName/swagger-ui.html,就可以看到文档页面了。

可直接支持在线调试接口

汉 化

  1. 在resources目录下创建文件夹META-INF.resources

  2. 将springfox-swagger-ui.jar包中swagger-ui.html拷贝到新建META-INF.resources里。

  3. swagger-ui.html中导入国际化中文版js

  4. 重启项目,清空缓存,刷新页面。

注 意

我们在启动后,请求http://ip:port/contextName/swagger-ui.html 直接报404错误;是因为Spring Boot默认是拦截静态资源,导致找不到swagger-ui.html。

我们只要放开swagger的静态资源即可。

END

更多精彩干货分享

点击下方名片关注

IT那活儿