Swagger2自动生成接口文档

1.首先导入依赖

  <!-- swagger2 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
            <exclusions>
                <exclusion>
                    <groupId>io.swagger</groupId>
                    <artifactId>swagger-models</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-models</artifactId>
            <version>1.5.21</version>
        </dependency>

2.编写SwaggerConfig代码

package com.lb.adnetworkbackend.common.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.Arrays;
import java.util.List;

/**
 * @author lb
 * @Date 2020/5/5
 * @REMARK: 自动生成接口文档工具类
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    
    

    @Bean
    public Docket customDocket() {
    
    
        return new Docket(DocumentationType.SWAGGER_2)
                .securityContexts(Arrays.asList(securityContexts()))
                .securitySchemes(Arrays.asList(securitySchemes()))
                .apiInfo(apiInfo());
    }
    /**
          * name:开发者姓名
          * url:开发者网址
          * email:开发者邮箱
          * @return
          */
    private ApiInfo apiInfo() {
    
    
        Contact contact = new Contact("Test", "http://localhost/doc.html", "[email protected]");
        return new ApiInfoBuilder()
                .title("test-backend的Swagger2 APIs")//标题
                .description("API接口的描述")//文档接口的描述
                .contact(contact)
                .version("1.1.0")//版本号
                .build();
    }

    /**
     * 配置全局参数
     * @return
     */
    private SecurityScheme securitySchemes() {
    
    
        return new ApiKey("Authorization", "Authorization", "header");
    }

    private SecurityContext securityContexts() {
    
    
        return SecurityContext.builder()
                .securityReferences(defaultAuth())
                //.forPaths(PathSelectors.any())
                .build();
    }
    private List<SecurityReference> defaultAuth() {
    
    
        AuthorizationScope authorizationScope = new AuthorizationScope("xxx", "描述信息");
        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
        authorizationScopes[0] = authorizationScope;
        return Arrays.asList(new SecurityReference("Authorization", authorizationScopes));
    }

}

3.在要生成接口文档的接口加上相关注解,如

/**
 * <p>
 * 平台账户信息 前端控制器
 * </p>
 *
 * @author lb
 * @since 2021-02-13
 * @update 2021-08-20 lb
 */
@RestController
@RequestMapping("/channelAccount")
@Api(value = "channelAccount API", tags = "平台账户信息APi")
@CrossOrigin
public class ChannelAccountController {
    
    

    private final Logger logger = LoggerFactory.getLogger(getClass());

    @Value("${data_source_switch}")
    private Boolean dataSourceSwitch;

    @Autowired
    private ChannelAccountService channelAccountService;

    @PostMapping()
    @ApiOperation(value = "新增平台账户", notes = "新增平台账户")
    public RestfulResult saveChannelAccount(@RequestBody @ApiParam("code、accountId、companyName必传," +
                                        "其他视渠道而定") ChannelAccountReq channelAccountSaveReq) {
    
    
        RestfulResult restfulResult = new RestfulResult();
        try {
    
    
            channelAccountService.saveChannelAccount(channelAccountSaveReq);
            restfulResult.setInstall(ResCode.SUCCESS);
        } catch (RequestException requestException) {
    
    
            restfulResult.setStatus_code(ResCode.ACCOUNT_FAIL.getCode());
            restfulResult.setMessage(requestException.getMessage());
        } catch (Exception e) {
    
    
            restfulResult.setInstall(ResCode.ERROR);
        }
        return restfulResult;
    }

猜你喜欢

转载自blog.csdn.net/qq_43012298/article/details/121764367