IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> swagger入门 -> 正文阅读

[Java知识库]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() {
    }

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-01-29 22:56:59  更:2022-01-29 22:58:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:00:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码