spring cloud alibaba 完整实现(五)整合swagger2

        忙着找工作,所以这段时间博客就搁置了,多线程也还没有继续往下,慢慢来吧,不断学习的过程才是快乐充实的。本章主要整合swagger2,话不多说,开始搞事情

swagger2

首先说明下什么是swagger2,作用是什么?

我们现在做java开发,由于前端的出现,导致我们越来越专注于后端(依稀还记得曾经前后端不分离,啥都干的情况)前后端分离,我们所做的事情更加专注。只需要提供数据接口,由前端调用就好了,但是有个问题是,当我们开发了接口,接口需要的参数,请求方式,返回值等等这些东西我们如何告知前端呢?

我用过的方式:口述,接口文档(word),apipost,showdoc,docway,swagger等等

口述,接口文档都不太靠谱,离职或者丢失啥都别玩了,谁记得住自己写的每一个接口参数。。。apipost,showdoc,docway这几个其实还是不错的,但是需要写完接口手动去编辑内容,最后就是swagger了

swagger是接口规范,swagger2是 Spring 生态系统的该规范的实现

它的作用就是接口实现文档化,让你更快的了解这个接口的作用,参数,返回值啥的

使用

        第一步,导入依赖

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

        第二步,配置文件的建立

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 1. swagger配置类
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                //是否开启 (true 开启  false隐藏。生产环境建议隐藏)
                //.enable(false)
                .select()
                //扫描的路径包,设置basePackage会将包下的所有被@Api标记类的所有方法作为api,自行更改自己的包路径,到controller就行了
                .apis(RequestHandlerSelectors.basePackage("com.andy.user.controller"))
                //指定路径处理PathSelectors.any()代表所有的路径
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                //设置文档标题(API名称)
                .title("SpringBoot中使用Swagger2接口规范")
                //文档描述
                .description("接口说明")
                //服务条款URL
                .termsOfServiceUrl("http://localhost:8080/")
                //版本号
                .version("1.0.0")
                .build();
    }
}

        第三步: 将你需要展示的接口加上注解内容

@RestController
@RequestMapping(value = "/user")
@Api(value = "测试接口", tags = "用户管理相关的接口", description = "用户测试接口")
public class UserController {
    @Autowired
    UserService userService;

    
    @RequestMapping("/update")
    //方法参数说明,name参数名;value参数说明,备注;dataType参数类型;required 是否必传;defaultValue 默认值
    @ApiImplicitParam(name = "userInfo", value = "修改用户数据")
    //说明是什么方法(可以理解为方法注释)
    @ApiOperation(value = "修改用户", notes = "修改用户")
    public String updateUser(UserInfo userInfo){

        userService.updateUser(userInfo);
        return "修改成功";
    }
    @RequestMapping("/delete")
    @ApiImplicitParam(name = "userInfo", value = "删除用户")
    @ApiOperation(value = "删除用户", notes = "删除用户")
    public String deleteUser(UserInfo userInfo){

        userService.deleteUser(userInfo);
        return "删除成功";
    }
    @RequestMapping("/queryUserAll")
    @ApiOperation(value = "查询所有用户", notes = "查询所有用户")
    public List<UserInfo> queryUserAll(){

//        List<LogginInfo> logginInfos = logginFeign.queryAll();
        return userService.queryUserAll();

    }

好了,完成,就是这么简单,那么一起来看下效果:

       启动后访问:localhost:端口/swagger-ui.html  这个地址固定的,不晓得能不能改,不过一般应该没有缺心眼去改这个吧,没有必要

一个接口为啥这么多?

我的接口只是使用@RequestMapping并没有指定访问方式,所以它就把所有的请求方式都列出来了。。。修改方式就是把@RequestMapping 访问方式写出来了。类上面有一个,方法上面也有一个,都可以去改,如果该类下所有的请求都是一种请求方式,比如post,那就再类上设置

 

好看多了,如果方法请求方式不一样,就在方法上面修改 

 自己对应自己的功能使用吧,接下来我们随便找个点开看下呢 ​​​​​​

 可以看到,只有我写了注解的那个才有描述说明,其他字段都没有,其实这个userInfo并不是某个字段,而是对象的名称,所以我们把它注释掉,然后再实体里面去加注解 @ApiModelProperty

 

再启动:

 字段的描述以及是否必传都有了

 我们尝试请求一下:

 执行后往下滑,会有相应结果

 至此,swagger2常用的东西就差不多了,这个虽然写到了java里面,但是还是节约了编写文档的时间,也方便前端使用调试,节省交流的成本。项目中还是可以使用一下的

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值