裸springboot项目添加swagger2测试环境(+配置错误排查步骤)

1.首先一个一般类型的springboot项目,含有controller接口暴露(requestmapping)
类似这种形式
在这里插入图片描述
以下为目录格式
在这里插入图片描述

配置步骤

1.在目录里建个swaggerConfig,是否创建新的文件夹没有硬性要求。
2.给上面加上这两条注解
在这里插入图片描述
接下来基本上就可以直接用了
如果要自定义一些属性,或者是加token配置的话(swagger相对于postman需要去手动配置插入header的token元素)
自定义属性的话可以自行修改docket属性,

//Docket:摘要对象,通过对象配置描述文件的信息。
    @Bean
    public Docket platformApi() {

        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).forCodeGeneration(true)
                .select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .apis(RequestHandlerSelectors.any())
/*                .paths(regex("^.*(?<!error)$"))*/
                .build()
                .securitySchemes(securitySchemes())
                .securityContexts(securityContexts());
    }
	//apiInfo:设置描述文件中 info。参数类型 ApiInfo
    //此部分对应swagger最上面的那部分
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("").description("")
                // .termsOfServiceUrl("")
                .contact(new Contact("111", "222", "333")).license("Apache License Version 2.0")
                .licenseUrl("https://github.com/springfox/springfox/blob/master/LICENSE").version("2.0").build();
    }
    /**

在这里插入图片描述
这里对应swagger一进来的部分,可以按自己需要的改

需要配置token的话,则需要额外添加auth配置

 //配置对应字段(这里的X-User-Token可以根据需要进行修改,有的公司里的token不直接叫token)
    private List<ApiKey> securitySchemes() {
        List<ApiKey> apiKeyList= new ArrayList();
        apiKeyList.add(new ApiKey("X-User-Token", "X-User-Token", "header"));
        return apiKeyList;
    }
//
    private List<SecurityContext> securityContexts() {
        List<SecurityContext> securityContexts=new ArrayList<>();
        securityContexts.add(
                SecurityContext.builder()
                        .securityReferences(defaultAuth())
                        .forPaths(PathSelectors.regex("^(?!auth).*$"))
                        .build());
        return securityContexts;
    }
	
    List<SecurityReference> defaultAuth() {
        AuthorizationScope authorizationScope = new AuthorizationScope("globalToken", "accessEverything");
        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
        authorizationScopes[0] = authorizationScope;
        List<SecurityReference> securityReferences=new ArrayList<>();
        securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
        return securityReferences;
    }

在这里插入图片描述
配置正常的话这里就会显示权限图标
在这里插入图片描述

排查错误(如果有的话)

由于很多人是直接把别人的swaggerConfig拿过来直接用的,所以很容易因为配置与自身环境不兼容产生错误
1.进去swagger结果一个接口都没有?如果Docket配置中含有apis(RequestHandlerSelectors.basePackage(“xxx.xxx”)),如果配置路径错误会导致一个接口都出不来,解决方法是将这个路径对应到项目的controller层(暴露接口的一层),或者是,直接删掉这一条。
2. 访问404?如果是从他人那里拿来的swaggerConfig,而且把因没加maven依赖的报错的包都加到了maven里配置好,项目目前已经不报错了,但是访问swagger还是404.
此时就应该检查一下是否忘记了最重要的swaggerUI的依赖包,导入后重启项目即可。

		<dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

3.项目访问还是404?检查项目的application.properties/application.yml中是否有
在这里插入图片描述
这种配置的话需要在访问url里加上
在这里插入图片描述
就可以正常访问了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值