springboot + swagger2 学习笔记

引入步骤html

1.添加依赖java

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>${dev.lib.swagger2}</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>${dev.lib.swagger2}</version>
</dependency>

2.配置swagger2spring

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    /**
     * 能够定义多个组,好比本类中定义把test和demo区分开了 (访问页面就能够看到效果了)
     */
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.gt.controller"))
                .paths(PathSelectors.any()).build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfo("SWAGGER接口文档", // 大标题
                "没什么好写的", // 小标题
                "2.0", // 版本
                "NO terms of service", "Czt@Chenzetan", // 做者
                "Czt", // 连接显示文字
                ""// 网站连接
        );
    }
}

3.api代码api

 @ApiOperation(value = "获取商家用户店铺分页列表",notes = "")
    @GetMapping
    public GTJsonResult getMainsList(HttpServletRequest request, Page page ) {
        Page<Main> mainsList = mainService.getMainsList(SessionUtil.getBusUser(request).getId(), page);
        if (mainsList.getRecords() == null || mainsList.getRecords().size() == 0) {
            return GTJsonResult.instanceErrorMsg("没有数据");
        }
        return GTJsonResult.instanceSuccessMsg(mainsList);
    }

4.访问 host//swagger-ui.html查看app

 

 

遇到的问题:网站

  1.若是方法请求参数中为实体类,那么不须要添加注解,便可实现这种效果,实体的参数会以paramter方式请求,例如3中的代码,page为object类型,请求只须要current=3便可注入到page参数中ui

2.上面这图为swagger较高版本,我用的是2.6.1,原来用2.2.2是不能实现这种效果。spa

 

3.@requestbody注解不能用于Get方式请求中code

 

4.@ApiImplicitParam和@ApiParam 注意区分好,前面一个能指定参数的各个方面,包括paramType类型,例如在藏在路径中的getObject/{id} 这种的,apiparam注解就不能作到,暂时还不懂真正的区别是什么?有知道的请告知下!谢谢htm