Swagger详细解释

Swagger作用:

使用

第一步:在pom.xml导入依赖

<dependency><!--添加Swagger依赖 -->
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>	
</dependency>
<dependency><!--添加Swagger-UI依赖 -->
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>

第二步:添加配置类(放在config包下)

通过扫描的方式自动生成文档,要配置扫描路径

去扫描controller的类,控制层有swagger需要的请求路径、请求方式、请求参数、响应内容

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket docket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))//扫描的包路径
                .build();
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("接口文档的标题")//文档标题
                .version("1.0.0")//文档版本说明
                .build();
    }

}

第三步:在application.yml添加配置

spring:
  mvc:
    pathmatch:
      matching-strategy: ant_path_matcher

localhost:8080/swagger-ui.html

基本表示

创建学生类控制层,在类和方法上写上对应的信息,会自动显示到swagger文档里

@Api(tags = " ")

这个注解是写在控制层上方,给该控制层做简单表示

 @ApiOperation ,value,notes

该注解是写在方法上,给方法做简单表示,解释默认给value赋值

notes是该方法的一些注意点,多个注解value不可省略

注意Security配置

如果有配置Security,会对swagger进行拦截,需要对它进行配置

swagger请求参数配置1

swagger请求参数配置2
实体类里ApiModel 与 ApiModerProperty

加上注解RequetBody

表示用json的形式传

增强版 knife4j(图形更美观)

使用:

导入依赖

导入这个依赖时,之前导入的那两个依赖可以删掉

他们之间有联系,会一起导入之前的依赖

<!--    使用knife4j可以将swagger的两个依赖删除 -->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-spring-boot-starter</artifactId>
    <version>2.0.9</version>
</dependency>
修改配置

将注解改掉

localhost:8080/doc.html

模拟响应示例

(它是内置postman)

统一设置返回值
如果用返回值map,会识别不出来。

建议自己搞一个类R(里面)返回
package com.example.demo.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

// Result
@ApiModel("响应实体")
public class R<T> {

    @ApiModelProperty("提示消息")
    private String msg;

    @ApiModelProperty("状态码")
    private Integer code;

    @ApiModelProperty("数据")
    private T data;

    public R() {
    }

    public R(String msg, Integer code, T data) {
        this.msg = msg;
        this.code = code;
        this.data = data;
    }

    public static R success() {
        return new R("操作成功!!", 200, null);
    }

    public static <T> R success(T data) {
        return new R("操作成功!!", 200, data);
    }

    public static R error() {
        return new R("操作失败!!", 500, null);
    }

    public static R error(String msg) {
        return new R(msg, 500, null);
    }

    public static R to(int rs) {
        return rs > 0 ? R.success() : R.error();
    }


    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }
}

但这个时候data没有标识出来,要把泛型传进去

一个控制层对应一个分类

设置全局参数token

@ApiReponses和@ApiResponse

(用得较少)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值