zoukankan      html  css  js  c++  java
  • springboot整合swagger2

    springboot整合swagger2

    来源:https://blog.lqdev.cn/2018/07/21/springboot/chapter-ten/

    Swagger是一款RESTful接口的文档在线自动生成、功能测试功能框架。一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务,加上swagger-ui,可以有很好的呈现。
    在这里插入图片描述

    SpringBoot集成

    • pom
    <!--swagger -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.8.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.8.0</version>
    </dependency>
    
    • 编写配置文件(Swagger2Config.java)
    @EnableSwagger2
    @Configuration
    public class SwaggerConfig {
     
        //是否开启swagger,正式环境一般是需要关闭的,可根据springboot的多环境配置进行设置
        @Value(value = "${swagger.enabled}")
        Boolean swaggerEnabled;
     
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
                    // 是否开启
                    .enable(swaggerEnabled).select()
                    // 扫描的路径包
                    .apis(RequestHandlerSelectors.basePackage("cn.lqdev.learning.springboot.chapter10"))
                    // 指定路径处理PathSelectors.any()代表所有的路径
                    .paths(PathSelectors.any()).build().pathMapping("/");
        }
     
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("SpringBoot-Swagger2集成和使用-demo示例")
                    .description("oKong | 趔趄的猿")
                    // 作者信息
                    .contact(new Contact("oKong", "https://blog.lqdev.cn/", "499452441@qq.com"))
                    .version("1.0.0")
                    .build();
        }
    }
    

    设置注解

    • controller

      • 类:@Api(value = "预订业务逻辑接口", description = "预订业务逻辑接口",tags="用户API")
      • 方法:@ApiOperation(value = "保存预订数据", response = 本类.class)
      • 路径参数/{id}:@ApiImplicitParam(name="id",value="查询ID",required=true)
      • 普通参数:@ApiParam(name = "id", value = "预订食品信息id", required = true)
    • entity

      • 类名:@ApiModel(value = "记账凭证详情", description = "记账凭证详情")
      • 类属性:@ApiModelProperty(name = "id", value = "记账凭证详情ID",dataType="String",example="1020332806740959233" )

    访问:http://127.0.0.1:8080/swagger-ui.html

    Swagger常用属性说明

    作用范围 API 使用位置
    对象属性 @ApiModelProperty 用在出入参数对象的字段上
    协议集描述 @Api 用于controller类上
    协议描述 @ApiOperation 用在controller的方法上
    Response集 @ApiResponses 用在controller的方法上
    Response @ApiResponse 用在 @ApiResponses里边
    非对象参数集 @ApiImplicitParams 用在controller的方法上
    非对象参数描述 @ApiImplicitParam 用在@ApiImplicitParams的方法里边
    描述返回对象的意义 @ApiModel 用在返回对象类上

    常用的注解@Api@ApiOperation@ApiModel@ApiModelProperty示例中有进行标注,对于其他注解,大家可自动谷歌,毕竟常用的就这几个了。有了swagger之后,原本一些post请求需要postman这样的调试工具来进行发起,而现在直接在页面上就可以进行调试了,是不是很爽!对于服务的调用者而已,有了这份api文档也是一目了然,不需要和后端多少沟通成本,按着api说明进行前端开发即可。

  • 相关阅读:
    struts2之JSP与Action的关系
    struts2之基本配置
    Android笔记之BroadCast判断网络状况
    Android笔记之监听左右滑动事件
    Android笔记之转到主线程运行
    springboot项目启动报错 Failed to configure a DataSource: 'url' attribute is not specified and no embedde
    centos6 初次安装成功,未显示eth0网卡的信息
    layerui上传文件
    判断当前浏览器类型
    jquery重置下拉框
  • 原文地址:https://www.cnblogs.com/ziyue7575/p/14158006.html
Copyright © 2011-2022 走看看