swagger可以在线生成接口文档,便于前后端沟通,而且还可以在线调用接口,方便后台调试。但是接口需要经过登录校验,部分接口还需要得到登录token,使用token识别用户身份进行后续操作。这种情况下,都需要接口增加header,好携带认证信息。
swagger2和swagger3有很大不同,平台选用的是swagger3。网上很多解决方案都是swagger2的,采用时一定看好自己的版本。无论2或3基本都是改配置类:
第一步 new Docket这里要加上
.securitySchemes(securitySchemes())
.securityContexts(securityContexts());
其中:
private List<SecurityScheme> securitySchemes() {
//设置请求头信息
List<SecurityScheme> result = new ArrayList<>();
ApiKey apiKey = new ApiKey("qlm-jwt", "qlm-jwt", "header");
result.add(apiKey);
return result;
}
private List<SecurityContext> securityContexts() {
//设置需要登录认证的路径
List<SecurityContext> result = new ArrayList<>();
result.add(buildContext("/.*"));
return result;
}
第二步:启动真正的前端进行登录,在application中找到token
第三步:打开swagger_ui界面,会发现右上角多了个授权的按钮。打开录入上面的token
第四步:在线测试接口。发现可以通过接口的登录验证了