springboot整合swagger,完爆前后端调试

web接口开发时在调试阶段最麻烦的就是参数调试,前端需要咨询后端。后端有时候自己也不是很了解。这时候就会造成调试一次接口就需要看一次代码。Swagger帮我们解决对接的麻烦

springboot接入swagger

  • springboot 引入swagger只需要引入jar包,然后配置swagger启动。并配合swagger的注解使用就可以实现文档自动生成了。我们先来看看效果
springboot整合swagger。完爆前后端调试

环境准备

  • 代码还是基于spring仓库开发。分支为feature/0004/springboot-swagger
  • swagger.version=2.9.2
<dependency>    <groupId>io.springfox</groupId>    <artifactId>springfox-swagger2</artifactId>    <version>${swagger.version}</version></dependency><dependency>    <groupId>io.springfox</groupId>    <artifactId>springfox-swagger-ui</artifactId>    <version>${swagger.version}</version></dependency>复制代码

配置

@Configuration@EnableSwagger2public class SwaggerConfig2 {    @Bean    public Docket createRestApi() {        // 添加请求参数,我们这里把token作为请求头部参数传入后端        ParameterBuilder parameterBuilder = new ParameterBuilder();        List<Parameter> parameters = new ArrayList<Parameter>();        parameterBuilder.name("token").description("令牌")                .modelRef(new ModelRef("string")).parameterType("header").required(false).build();        parameters.add(parameterBuilder.build());        return new Docket(DocumentationType.SWAGGER_2)                .pathMapping("/")                .select()                .apis(RequestHandlerSelectors.basePackage("com"))                .paths(Predicates.not(PathSelectors.regex("/error.*")))                .build().apiInfo(new ApiInfoBuilder()                        .title("后端服务说明")                        .description("SpringBoot整合Swagger,详细信息......")                        .version("1.0")                        .contact(new Contact("zxhtom", "zxhtom.blog.csdn.net", "870775401@qq.com"))                        .license("The Apache License")                        .licenseUrl("http://zxhtom.gitee.io")                        .build())                .useDefaultResponseMessages(false)                .securitySchemes(securitySchemes())                .securityContexts(securityContexts())                .globalOperationParameters(parameters);    }    private List<ApiKey> securitySchemes() {        List<ApiKey> apiKeyList = new ArrayList();        apiKeyList.add(new ApiKey("Authorization", "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("global", "accessEverything");        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];        authorizationScopes[0] = authorizationScope;        List<SecurityReference> securityReferences = new ArrayList<>();        securityReferences.add(new SecurityReference("Authorization", authorizationScopes));        return securityReferences;    }}复制代码

添加请求头

securitySchemes(securitySchemes())securityContexts(securityContexts())复制代码
  • 在上面的两端配置就是加入全局的token设置的。在swagger-ui界面显示是右上角有一把锁的标志
springboot整合swagger。完爆前后端调试

springboot整合swagger。完爆前后端调试

springboot整合swagger。完爆前后端调试

接口使用

springboot整合swagger。完爆前后端调试

springboot整合swagger。完爆前后端调试

springboot整合swagger。完爆前后端调试

注解使用

注解

功能

@Api()

用在请求的类上。表示该类的请求类用于文档标注

@ApiOperation()

用于方法上。对一个http请求的具体说明,出参入参说明

@ApiModel()

对请求实体的一个说明

@ApiModelProperty

对实体内属性说明,也可以设置默认值

@ApiImpliciParams()

用于请求的方法上,里面是ApiImpliciParam数组

@ApiImpliciParam()

表示单独请求参数。可以设置form表单中参数单独设置

@ApiParam()

对请求方法中参数的单独设置 类似ApiImpliciParam

@ApiResponses()

对请求方法上根据响应码设置说明

@ApiResponse

单个响应码说明

@ApiIgnore()

对该请求的忽略

  • 具体使用可以查看源码。源码上面有给出。

自定义swaggerUI

  • 这里需要首先介绍下spring资源的加载顺序。

src/main/resources/META-INF/resources src/main/resources/static src/main/resources/public

  • 这三个优先级依次降低。换句话说spring首先会在src/main/resources/META-INF/resources下寻找资源。所以这也是我们自定义swaggerUI的策略。我们只需要在META-INF下重新绘画swaggerUI的页面就行了。这里只是提供思路。不具体实现(懒)

作者:本该努力的年龄千万别放弃

内容出处:,

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.net/procedure/27892.html

发表评论

登录后才能评论