Swagger接口文档配置

  • 在pom.xml文件中引入依赖
  <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger2</artifactId>
  </dependency>
  <dependency>
      <groupId>io.springfox</groupId>
      <artifactId>springfox-swagger-ui</artifactId>
  </dependency>
  • 新建配置类
package com.heima.common.swagger;
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.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;

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

   @Bean
   public Docket buildDocket() {
      return new Docket(DocumentationType.SWAGGER_2)
              .apiInfo(buildApiInfo())
              .select()
              // 要扫描的API(Controller)基础包
              .apis(RequestHandlerSelectors.basePackage("com.xxx"))
              .paths(PathSelectors.any())
              .build();
   }

   private ApiInfo buildApiInfo() {
      Contact contact = new Contact("xxxxx","","");
      return new ApiInfoBuilder()
              .title("xxxx-平台管理API文档")
              .description("xxxx后台api")
              .contact(contact)
              .version("1.0.0").build();
   }
}
  • 在编写的controller中插入注解
    @Api(修饰整个类,描述Controller的作用)及@ApiOperation(描述类中的某个方法或者说接口)
    @RestController
    @RequestMapping("/api/v1/login")
    @Api(value = "app用户登录", tags = "app用户登录")
    public class ApUserLoginController {
    
    	@Autowired
    	private ApUserService apUserService;
    	@PostMapping("/login_auth")
    	@ApiOperation("用户登录")
    	public ResponseResult login(@RequestBody LoginDto loginDto){
    		return apUserService.login(loginDto);
    	}
    }
    
    @ApiModelProperty(用对象接收参数时,描述对象的一个字段)
    @Data
    public class LoginDto {
    	/**
    	 * 手机号
    	 */
    	@ApiModelProperty(value = "手机号", required = true)
    	private String phone;
    	/**
    	 * 密码
    	 */
    	@ApiModelProperty(value = "密码", required = true)
    	private String password;
    }
    
  • 在spring.factories中新增配置
    spring.factories位于resources目录下的META-INF目录下,使得在springboot运行时,SpringFactoriesLoader类会去加载上面我们自定义的配置类SwaggerConfiguration
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.heima.common.swagger.SwaggerConfiguration
posted @ 2023-09-07 10:48  梦醒时风  阅读(75)  评论(0)    收藏  举报