Guns——使用swagger生成api文档(三)

1.swagger介绍

swagger是用来自动生成相应api文档的一个插件,使用简单。

2.引入swagger依赖

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

3.配置相应的配置类

从下面代码可以清晰的看到配置详情,在生成api的时候有两种方法

  • 第一种是通过扫描注解的方式生成api文档,自由度较高
  • 第二种是通过扫描包的方式生成api文档,速度快,无需加注解(不同同时使用两种方法)
@Configuration
@EnableSwagger2
@ConditionalOnProperty(prefix = "guns", name = "swagger-open", havingValue = "true")
public class SwaggerConfig {

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
               // .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))                         //这里采用包含注解的方式来确定要显示的接口
                .apis(RequestHandlerSelectors.basePackage("cn.stylefeng.guns.modular.system.controller"))    //这里采用包扫描的方式来确定要显示的接口
                .paths(PathSelectors.any())
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Guns Doc")
                .description("Guns Api文档")
                .termsOfServiceUrl("https://gitee.com/stylefeng/guns")
                .contact("stylefeng")
                .version("2.0")
                .build();
    }

}

4.注解的使用方法

@ApiOperation:用在方法上,说明方法的作用
@ApiImplicitParams:用在方法上包含一组参数说明
@ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面

  • paramType:参数放在哪个地方
  1. header-->请求参数的获取:@RequestHeader
  2. query-->请求参数的获取:@RequestParam
  3. path(用于restful接口)-->请求参数的获取:@PathVariable
  4. body(@RequestBody)
  5. form(表单提交)
  • name:参数名
  • dataType:参数类型
  • required:参数是否必须传
  • value:参数的意思
  • defaultValue:参数的默认值

5.配置相应的ui资源

由于正常的访问路径都会经过DispatchServlet,所以需要在web的配置类上配置相对应的静态资源(有两个),两个才构成一个完整页面

  • 第一个是swagger的html文件
  • 第二个是html所引用的其他资源文件
@Configuration
public class WebConfig implements WebMvcConfigurer {

    ...

    /**
     * 增加swagger的支持
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        if (gunsProperties.getSwaggerOpen()) {
            registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
            registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
        }
    }

    ...

}

 

 

 

 

 

Guns 文档高级版 v20191027 1. 序言1.1 文档简介 1.2 最新Guns&Roses架构视频 1.3 版本介绍 2. 使用手册 2.1 下载项目 2.1.1 下载企业版项目 2.2 导入项目 2.2.1 eclipse导入 2.2.2 IDEA导入 2.3 运行项目 2.4 打包部署 3. 开发手册 3.1 了解Guns 3.1.1 模块结构 3.1.2 包结构说明 3.2 实战开发 3.2.1 建表 3.2.2 代码生成 3.2.3 添加菜单与分配权限 3.2.4 编写业务代码 3.3 权限控制与校验 3.3.1 用户,角色和资源 3.3.2 如何对资源进行权限控制 3.3.3 前端页面对权限资源的显示 3.4 多数据源的使用 3.5 如何分页 3.5.1 简单查询的分页 3.5.2 复杂查询的分页 3.5.3 获取前端表格插件传值 3.6 数据范围 3.6.1 介绍 3.6.2 如何使用 3.6.3 原理 3.7 spring security + jwt鉴权 3.7.1 放开权限过滤 3.7.2 获取当前登录用户 3.7.3 会话管理 3.8 日志记录 3.8.1 业务日志 3.8.2 异常日志 3.9 如何使用缓存 3.10 使用枚举 3.11 spring boot热部署 3.11.1 重新加载html 3.11.2 重新加载java类 3.12 发送邮件 3.13 发送短信 4. 高级使用手册 4.1 修改项目名和包名 4.2 在线参数配置 4.3 模板位置的变更 4.4 顶部广告的关闭 4.5 添加登录验证码 4.6 spring profile 4.7 多机器部署注意事项 4.8 XSS过滤器 4.8.1 介绍 4.8.2 原理 4.8.3 放过过滤 4.9 多租户功能 4.9.1 介绍 4.9.2 打开租户开关 4.9.3 新建租户 4.9.4 使用租户账户登录 4.9.5 基本原理 4.10 多语言 4.10.1 介绍 4.10.2 录入字典条目 4.10.3 使用字典翻译 5. 核心思想 5.1 分包 5.2 统一异常拦截 5.2.1 介绍 5.2.2 优点 5.2.3 关于性能 5.3 结果包装器 5.3.1 如何使用 5.3.2 ConstantFactory 5.4 前端思想 5.4.1 布局 5.4.2 手动新增标签页 6. 常见问题答疑 6.1 默认的系统登录账号和密码是多少 6.2 权限异常 6.3 为何分页是前端实现 6.4 关于${ctxPath} 6.5 放过某些url的权限验证 6.6 主页的搜索功能 6.7 运行sql报错 6.8 关于打包 6.9 查询结果的驼峰转化问题 6.10 为何使用beetl 6.11 为何有的业务没有service层
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值