• spring boot 集成 swagger


    spring boot 集成 swagger


    介绍

    添加依赖

    <!-- swagger -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.6.1</version>
    </dependency>
    
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.6.1</version>
    </dependency>
    

    添加swagger配置类

    @Configuration
    public class Swagger2 {
    
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
    				// 扫描接口包根路径
                    .apis(RequestHandlerSelectors.basePackage("com.example.myproject"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("API文档")
                    .description("")
                    .version("1.0")
                    .build();
        }
    }
    

    修改启动类

    添加@EnableSwagger2注解。

    @SpringBootApplication
    @EnableSwagger2
    public class MyprojectApplication extends SpringBootServletInitializer {
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(MyprojectApplication.class);
        }
    
        public static void main(String[] args) {
            SpringApplication.run(MyprojectApplication.class, args);
        }
    }
    

    测试

    访问 http://localhost:8089/swagger-ui.html 查看API文档。

    注解

    用于丰富API文档的内容(更详细的接口说明)。

    • 对API的注解

      • @Api :将一个Controller(Class)标注为一个swagger资源(API)。
        • tags:API分组标签
        • value:如果tags没有定义,value将作为Api的tags使用
      • @ApiOperation:在指定的(路由)路径上,对一个操作或HTTP方法进行描述。
        • value:对操作的简单说明,长度为120个字母,60个汉字
        • notes:对操作的详细说明
        • httpMethod:HTTP请求类型["GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS", "PATCH"]
        • code:默认为200
      • @ApiImplicitParams:以数组方式存储@ApiImplicitParam注解。
      • @ApiImplicitParam:描述API中单一参数。(该注解中paramType属性值与API方法参数获取使用的注解不一致,会影响参数的接收)
        • name:参数名称
        • value:参数的简短描述
        • required:是否为必传参数
        • dataType:参数类型
        • paramType:参数的传入(请求)类型["path", "query", "body", "header", "form"]
      • @ApiParam:增加对参数的元信息说明。
        • required:是否为必传参数
        • value:参数简短说明
      • @ApiResponses:以数组方式存储@ApiResponse注解。
      • @ApiResponse:描述一个操作可能的返回结果。
        • code:HTTP请求返回码。
        • message:更加易于理解的文本消息
    • 对Model的注解

      • @ApiModel:对 model 类的注解。
        • value:model的别名,默认为类名
        • description:model的详细描述
      • @ApiModelProperty:对 model 属性的注解。
        • value:属性简短描述
        • example:属性的示例值
        • required:是否为必须值

    PS:使用@RequestMapping注解,需指明请求方法,否则默认情况下API文档会列出所有请求类型接口。

  • 相关阅读:
    Moo.fx 超级轻量级的 javascript 特效库
    Oracle 异常错误处理
    变被动为主动
    数据结构定义
    Redis 一个keyvalue存储系统 简介
    使用Container.ItemIndex获取Repeater、Gridview行的序号的简单方法
    ORACLE SQL:经典查询练手第一篇
    MongoDB 一个基于分布式文件存储的数据库
    dojo Quick Start/dojo入门手册面向对象,定义Class
    面向过程分析与面向对象分析之间的区别
  • 原文地址:https://www.cnblogs.com/wscy/p/9473563.html
Copyright © 2020-2023  润新知