swagger学习

本文介绍了前后端分离的概念,并详细讲解了如何在SpringBoot项目中集成Swagger,包括依赖引入、配置步骤。Swagger不仅能够自动生成接口文档,还支持在线测试接口,极大地简化了开发过程中接口文档的编写和测试流程。
摘要由CSDN通过智能技术生成

一、介绍

1、前后端分离

   在开始学习后端的Servlet和SSM时期,前端一些简单的HTML,CSS,JS,AJAX都是写在JSP代码中得, 前后端都是一个开发完成,交互的东西自己可定都清楚,但是随着前后端的分离,前端和后端都是一个独立的程序了,由不同的人员进行变形词儿,两个程序之间如何交互,也就是发起的HTTP请求的参数,以及获取到的requertbody信息的说明双方都是需要遵守一个规范的。就好像你去看别人写的代码,无论代码写的多好如果没有写注释没有规范,肯定是晦涩难懂的。
   通常都会由后端开发人员写完功能以后提供一个接口文档,规定请求参数,根据前端所需返回对应的数据,写文档是一件很痛苦的事情,如果有一个工具就好了,就跟写实体类和mysql数据库表的对应关系一样(mybatisplus),Swagger就是一个这样的工具,而且利用<font color="red">Swagger还可以在线对接口进行测试,不用启用ponstman进行测试,写url,method这些,swagger自带这样的网页在线测试</font>

二、SpringBoot集成

1、依赖引入

maven仓库
在这里我使用使用人数最多的。保持两个版本一致
在这里插入图片描述
在这里插入图片描述

mvn依赖

        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

2、配置

指定包,类/方法上注解,过滤,协同开发,根据系统环境设置是否开启swagger


@Configuration //配置注解,会被springboot扫描到
@EnableSwagger2 //开启swagger2
public class SwaggerConfig {

    @Bean
    public Docket docket1(){
        return new Docket(DocumentationType.SWAGGER_2).groupName("A");
    }
    @Bean
    public Docket docket2(){
        return new Docket(DocumentationType.SWAGGER_2).groupName("B");
    }
    @Bean
    public Docket docket3(){
        return new Docket(DocumentationType.SWAGGER_2).groupName("C");
    }
    @Bean
    public Docket docket(){
        return new Docket(
                    DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .enable(true)//是否启用,获取项目的环境,如果是开发环境,那么则不能访问swagger-ui.html页面
                    .select() //ApiSeelctorBuilder api选择创建者
                    //basePackage指定包扫描结构,any扫描全部,none全都不扫描
                    //withClassAnnotation:扫描类上的注解
                    //withMethodAnnotation:扫描方法上的注解
                    .apis(RequestHandlerSelectors.basePackage("com.example.epin.controller"))
                    //过滤api,不符合条件的过滤掉
//            .paths(PathSelectors.ant("/com/example/epin/config/**"))
                    .build();
        }
    }

    private ApiInfo apiInfo(){
        Contact contact = new Contact("作者信息","个人站点","email");
        return new ApiInfo(
                "标题",
                "描述",
                "版本",
                "组织网站",
                contact,
                "证书",
                "证书网站地址",
                new ArrayList()
        );
    }
}


三、常用注解

swagger会扫描所有接口中返回值的实体类到页面中得model中显示
ApiModel(“说明”);实体类上面的说明
ApiModelProperty(“说明”);实体类中属性的说明
ApiOperation(“说明”);接口类中得方法上的说明
ApiParam(“说明”);接口类中得方法的参数的说明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值