暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

又一偷懒神器!快卸载PostMan!

国科编程派 2021-09-24
675

大家好!我是渣哥,是一个每天都在攒钱植发的程序猿。


今天跟大家聊聊项目开发,尤其是前后端分离的项目开发中经常遇到的两个问题。

一个是接口调试

后端的接口写好之后,要用各种调试工具,如PostMan等,去做接口调试,说实话,渣哥是不太喜欢用PostMan的,啥都需要手输,输错了就会有各种问题。

一个是接口文档

如果这个项目只有你一个人开发还好说,如果涉及到前端跟后端的分工合作,你后端写好之后,还需要写一份后端的接口文档,用于告知前端的伙伴该如何调用你写的接口,传入什么参数,返回什么数据,如何解析等等;如果这些内容都需要手写的话,一方面我们会浪费大量的时间,另一方面也没有办法做到实时同步,可能你后端的接口已经改了,但是你的接口文档还是之前的版本,这样就会导致前端同学使用你的接口时,明明按照你的接口文档传入数据了,但是得不到想要的结果。这时候前端的投诉就来了,老板就会来找你谈话了,绩效就完不成了,升任CEO,迎娶白富美,走上人生巅峰的目标就破灭了。

这怎么可以!!!

你肯定在想:难道就没有一个偷懒的办法嘛?我想要更简单的接口调试 ,我不想要手动去编写接口文档啊喂!天哪!谁能来救救我啊!


别着急,渣哥来救你!你想要接口调试更简单?你想要自动生成接口文档?Swagger统统满足你!

渣哥,你说swagger那么牛批,到底是个啥啊?


Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。

说点人话就是使用Swagger可以让你无须关注接口文档,专心的开发,至于文档,你只需要多写几个注解,Swagger就可以自动帮你生成,并且还有配套的UI界面,跟你编写的接口实时更新,确保同步;并且在界面里你还可以做到实时调试,连PostMan都不需要用了,后端接口调试从未如此轻松!

那么Swagger如此牛批,咱们要怎么使用Swagger呢?

如何使用Swagger

1、导入依赖

假定你现在已经搭建好了一个基础的SpringBoot项目,想要使用Swagger第一步当然是导入依赖了,导入的依赖有两个,一个是Swagger自己的依赖,一个是SwaggerUI的依赖,有了这个依赖 ,你才能看到Swagger的UI界面。//不要忘了SpringWeb的依赖,我就不演示了哈。

<!-- Swgger依赖-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<!-- SwggerUI依赖-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>


2、编写配置类

新建一个SwaggerConfig
的配置类。

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket getDocket() {
        //创建ApiInfo的构建对象,用于生成ApiInfo对象;
        ApiInfoBuilder apiInfoBuilder = new ApiInfoBuilder()
                //标题
                .title("Swagger生成的后端接口文档")
                //描述信息
                .description("用于测试Swagger的使用")
                // 版本
                .version("1.0.0")
                //作者信息
                .contact(new Contact("作者", "个人主页", "邮箱"));

        ApiInfo apiInfo = apiInfoBuilder.build();

        //指定文档风格
        return new Docket(DocumentationType.SWAGGER_2)
                //指定生成的封面信息
                .apiInfo(apiInfo)
                //指定文档生成策略
                .select()
                //指定那些包生成API文档
                .apis(RequestHandlerSelectors.basePackage("Controller包路径"))
                //构建
                .build();
    }
}


通过上面简单的两步,我们就配置好了Swagger的基础使用,现在我们把项目启动起来,然后进入:http://localhost:8080/swagger-ui.html
就可以看到基础的Swagger-ui界面了。

我们现在已经看到了Swagger的页面了,但是里面一个接口都还没有,那怎么把我们写的接口显示在这里呢?这里就需要用到Swagger的注解了。

@Api(tags = "")

该注解打在Controller的类名上,可以定义该Controller要显示的名称

@Api(tags = "测试接口组")
public class TestController {
    ...
}



@ApiOperation("接口说明")

该注解打在Controller的方法上,用于说明该接口是干嘛的。


@GetMapping("test")
@ResponseBody
@ApiOperation("这是该接口的说明")
 public String test1(String name, String password) {
    return name + password;
}


@ApiIgnore:

如果在某一方法上使用了这个注解之后,这个接口将不会在Swagger里显示

@ApiImplicitParams:

定义方法的收参信息集合 ,内含一个或多个@ApiImplicitParam

@ApiImplicitParam(name="参数名",value="参数描述")

定义具体的参数信息:

@ApiImplicitParams({
        @ApiImplicitParam(name = "name", value = "用户名"),
        @ApiImplicitParam(name = "password", value = "密码")
})




@ApiModel("")
描述一个Model的信息。

@ApiModelProperty("")
:描述一个model的属性。

@ApiModel("返回的结果集对象")
public class ResultVO {
    @ApiModelProperty("返回码")
    private Integer code;

    @ApiModelProperty("返回消息")
    private String msg;

    @ApiModelProperty("返回数据")
    private Object data;
}


看到这里,我想你已经基本了解了Swagger了,但是现在看到的页面都还是纯英文的,对于外语不好的小伙伴有点不友好(比如渣哥本人),并且调试起来,也不太直观;要是有更好看的UI,最好是纯中文的,调试也比较方便那就更好了,哈哈哈,巧了,有!


BootStrapUI

咱们刚刚导入的Swagger-UI是Swagger官方的UI,界面不好看,并且基本都是纯英文界面,渣哥不喜欢,那我们就把它换掉!接下来我们使用另一个UI,这个UI是BootStrap提供的,我们来试试吧!

第一步:换UI,把之前原生的UI依赖改成这个。

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>1.9.6</version>
</dependency>


第二步:重启项目,换掉UI之后,它的默认的访问地址也是需要改一下的,现在我们去访问:http://localhost:8080/doc.html

看,这样的界面是不是更友好呢?


调试起来也更为友好,不需要我们再去输入路径、请求方式、参数名等等。

好了,今天关于Swagger的学习就到这里,大家看完之后一定要自己去敲一敲,要把今天学到的知识变成熟练使用Swagger的能力哦!我是渣哥,咱们下期见!


END

扫码关注我们
世间万物,千奇百怪,
都等待着你去发觉......
文章转载自国科编程派,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论