后端项目中swagger组件应用

 引入:现在javaweb项目开发,有前端和后端,而且开发是前后端分离开发的 ,前端只开发前端,后端值开发后端。

例如查询操作,前端如何知道后端需要什么样的数据,后端向前端返回怎样的数据。可以通过一个文档,例如后端开发一个文档,登录 账号account,密码password 响应数据 data,code,message,把文档发给前端

但是文档的维护比较麻烦,需求经常改变,文档也就需要不停地修改

swagger组件就是可以自动生成这个文档,在后端通过注解配置,在线生成api文档,可以动态生成,不需要手动去维护文档,并且我们还可以在线进行测试,即就是在线向后端发送请求。

集成实现:先加入jar包,再进行配置,配置如下,在Webconfig类中

​一般默认所有的访问后端的请求都会进入到dispatcher servlet(spring mvc第一个步 骤)中,而我们如果只是要一些html,css,js,等等,就不需要进入其中,因为这些请求没有对应的controller,就会报404,所有我们需要对这类请求放行,即就是不需要让他们进入dispatcher servlet中,如我们进行访问swagger动态生成的文档时,就直接访问即可http://localhost:8088/swagger-ui.html
先进行放行操作:
        /*一般默认所有的访问后端的请求都会进入到dispatcher servlet
(spring mvc第一个步 骤)中,而我们如果只是要一些html,css,js,等等
,就不需要进入其中,因为这些请求没有对应的controller,就会报404,
        所有我们需要对这类请求放行,即就是不需要让他们进入dispatcher
 servlet中,如我们进行访问swagger动态生成的文档时,就直接访问即可
http://localhost:8088/swagger-ui.html
​
        放行行前台首页,文章详细信息等地址,都不让其进入dispeatcher servlet中
         */
        inter.excludePathPatterns("/swagger*/**"); //放行swagger
        inter.excludePathPatterns("/v2/**");//放行swagger
        inter.excludePathPatterns("/webjars/**");//放行swagger
    }
​
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html").addResourceLocations(
                "classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations(
                "classpath:/META-INF/resources/webjars/");
    }

应用swagger:使用注解标签

主要使用:

@Api,给controller类上面加,用于描述这个类的作用

@ApiOperation,给刚才的类中的方法上面加,用于描述这个方法的作用,方法的参数有两种情况时:参数是一个对象;参数是一个或多个基本类型

@ApiImplicitParams,当参数是一个或多个基本类型时,就加在刚才的方法上即可,如下:

    @ApiOperation(value = "查询管理员列表")//实现swagger动态生成文档,该注释用在方法上,说明该方法的作用
    @ApiImplicitParams(//实现swagger,这里是对该方法的参数进行了描述
            {@ApiImplicitParam(paramType = "query",name = "num",value = "当前页数",required = true,dataType = "Integer"),
             @ApiImplicitParam(paramType = "query",name = "pageSize",value = "每页数据个数",required = true,dataType = "Integer")
            }
    )
    @GetMapping(path= "/adminlist/{num}/{pageSize}")
    public CommonResult AdminList(@PathVariable("num")Integer num,
                                  @PathVariable("pageSize")Integer pageSize){
        方法体}

@ApiModel,当参数是对象时,我们在这个对象的类上面加注解标签,还需要在这个类中的对应属性加入注解标签@ApiModelProperty,如下:

  @ApiOperation(value = "登录",notes = "登录访问接口")//实现swagger动态生成文档,该注释用在方法上,说明该方法的作用
    @PostMapping(path = "/login")
    public CommonResult Login(@RequestBody Admin admin) {方法体}
​
​
@ApiModel(value = "管理员实体类")//实现swagger,该注释用在实体类,并且该类当做方法中的参数,该注释用于描述这个类
public class Admin {
    @ApiModelProperty(value = "主键")
    private Integer id;
    @ApiModelProperty(value = "管理员账号")
    private String account;
    @ApiModelProperty(value = "管理员密码")
    private String password;
}

@EnableSwagger2 ,swagger配置,必须加,加在@Api下面即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值