swagger入门

swagger学习笔记

什么是swagger

swagger是通过注解自动生成json或者yml文件,进而解析成api文档的一个组件,利用swagger-ui生成在线的可以实时跟新的api文档,方便前后端和协同开发.

基本配置

@Configuration
public class SwaggerConfig {
/**
* Doctet是swagger的 全局配置对象
* @return
/
@Bean
public Docket getDocket(){
Docket docket = new Docket(DocumentationType.SWAGGER_2);
//api帮助文档的描述信息
ApiInfo apiInfo = new ApiInfoBuilder()//构建者模式
.contact(//配置swagger文档主题内容
new Contact(“swagger开发文档”,//文档的发布者名称
“http://”,//文档发布者的网站信息
“123.com”))//文档发布者的邮箱
.description(“swager学习描述”)//文档的描述
.title(“swagger学习文档”)//文档的标题
.version(“1.1”)//文档的版本
.build();
//给docket上下文配置api描述信息
docket.apiInfo(apiInfo);
docket.select()//获取docket中的选择器,的那会类型是ApiSelectorBuilder,构建选择器:如:扫描什么包的注解
.apis(
Predicates.not(//取反 true–false false-true
RequestHandlerSelectors.withMethodAnnotation(//当方法上有注解时返回true
MyAnnotation4Swagger.class//方法的上的注解类
)
))
.apis(RequestHandlerSelectors.basePackage(“com.liu.controller”))//设定早苗那个包包含子包
.paths(
Predicates.or(//以下三个里面的任何一个都可以
PathSelectors.regex("/swagger/.
"),//使用正则表达式,约束生成API文档的路径地址,控制器里面只有swagger路径的才会生成文档,其他的不生成表示0-n个
PathSelectors.regex("/swagger2/.
"),
PathSelectors.regex("/.*")

                    )
            )
          .build();//重新构建Docket对象
    //等价于

// docket.select()//获取docket中的选择器,的那会类型是ApiSelectorBuilder,构建选择器:如:扫描什么包的注解
// .apis(
// Predicates.and(
// Predicates.not(//取反 true–false false-true
// RequestHandlerSelectors.withMethodAnnotation(//当方法上有注解时返回true
// MyAnnotation4Swagger.class//方法的上的注解类
// )
// ),
// RequestHandlerSelectors.basePackage(“com.liu.controller”)
// )
// )
.apis(RequestHandlerSelectors.basePackage(“com.liu.controller”))//设定早苗那个包包含子包
// .build();//重新构建Docket对象

    return docket;
}

}

controller类

/**

  • @Api—描述当前类型生成帮助文档的信息

  • 属性:

  • tags:给当前类型定义别名,有几个别名就会在ui视图里面生成几个菜单

  • description:给当前类型生成的帮助文档一个描述信息
    */
    @RestController
    @RequestMapping("/swagger")
    @Api(tags = {“mycontroller”,“swagger学习控制器”},description = “测试Api文档的描述信息”)
    public class HelloController {
    @RequestMapping("/entity")
    public Myentity entity(){
    return new Myentity();
    }
    // @ApiImplicitParam(name =“m”,value = “参数m的描述”,required = false,paramType = “字符串”,dataType = “名值对”)
    @ApiImplicitParams(value = {
    @ApiImplicitParam(name =“m”,value = “参数m的描述”,required = false,paramType = “字符串”,dataType = “名值对”),
    @ApiImplicitParam(name=“n”,value = “n的描述”,required = true,paramType = “字符串(string)”,dataType = “名值对”)
    })
    @GetMapping("/test")
    public String test(String m, String n){
    return “test”;
    }

    /**

    • @ApiIgnore 当前注解描述的方法或者类不生成api帮助文档, 和前面写的自定义注解功能差不多
    • @return
      */
      @ApiIgnore
      @GetMapping("/get")
      public String get(){
      return “get”;
      }
      @PostMapping("/post")
      //为方法做描述信息
      @ApiOperation(value=“post请求方法,做新增需求”,notes = “学习使用post请求的方法”)
      public String post(
      @ApiParam(name = “用户名(a)”,value = “用户新增提交的用户名”,required = true) String a,
      @ApiParam(name=“密码 “,value = “新增用户的密码”,required = true) String b){
      return “post”;
      }
      @MyAnnotation4Swagger
      @RequestMapping(”/req”)
      public String map( int m){
      return “req”;
      }

}

entity

/**

  • @Apimodel —描述一个实体类,这个实体成功任何一个生成api文档的方法的返回值类型的时候,次注解被解析
    */
    @ApiModel
    public class Myentity implements Serializable {
    @ApiModelProperty(value = “主键”,name=“主键(id)”,required = false,example = “1”,hidden = false)
    private Integer id;
    @ApiModelProperty(value = “用户名”,name=“用户名(username)”,required = true,example = “张三”,hidden = false)
    private String username;
    @ApiModelProperty(value = “密码”,name=“密码(password)”,required = true,example = “123456”,hidden = false)
    private String password;

    public Myentity() {
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值