Swagger常用参数用法

别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/

1、常用参数

a、配置参数

 1 package com.mao.swagger.config;
 2
 3 import org.springframework.context.annotation.Bean;
 4 import org.springframework.context.annotation.Configuration;
 5
 6 import springfox.documentation.builders.PathSelectors;
 7 import springfox.documentation.builders.RequestHandlerSelectors;
 8 import springfox.documentation.spi.DocumentationType;
 9 import springfox.documentation.spring.web.plugins.Docket;
10 import springfox.documentation.swagger2.annotations.EnableSwagger2;
11
12 @Configuration
13 @EnableSwagger2
14 public class SwaggerConfig {
15
16     @Bean
17     public Docket userDocket() {
18         return new Docket(DocumentationType.SWAGGER_2)
19                 .groupName("商品接口文档")
20                 .select()
21                 .paths(PathSelectors.any())
22                 .apis(RequestHandlerSelectors.basePackage("com.mao.swagger.goods.controller"))
23                 .build();
24     }
25
26     @Bean
27     public Docket deviceDocket() {
28         return new Docket(DocumentationType.SWAGGER_2)
29                 .groupName("用户接口文档")
30                 .select()
31                 .paths(PathSelectors.any())
32                 .apis(RequestHandlerSelectors.basePackage("com.mao.swagger.user.controller"))
33                 .build();
34     }
35
36 }
  • .groupName("商品接口文档")   设置栏目名
  • .select()  初始化并返回一个API选择构造器
  • .paths(PathSelectors.any())   设置路径筛选
  • .apis(RequestHandlerSelectors.basePackage("com.mao.swagger.goods.controller"))  添加路径选择条件
  • .build();

  PathSelectors类的方法:

  Predicate<String> any():满足条件的路径,该断言总为true

  Predicate<String> none():不满足条件的路径,该断言总为false  (生产环境可以屏蔽掉swagger:https://blog.csdn.net/goldenfish1919/article/details/78280051)

  Predicate<String> regex(final String pathRegex):符合正则的路径

  RequestHandlerSelectors类的方法:

  Predicate<RequestHandler> any():返回包含所有满足条件的请求处理器的断言,该断言总为true

  Predicate<RequestHandler> none():返回不满足条件的请求处理器的断言,该断言总为false

  Predicate<RequestHandler> basePackage(final String basePackage):返回一个断言(Predicate),该断言包含所有匹配basePackage下所有类的请求路径的请求处理器

b、接口参数

  • @Api()用于类; 表示标识这个类是swagger的资源   【参考code1,效果图1】
  • @ApiOperation()用于方法; 表示一个http请求的操作  【参考code1,效果图1】
  • @ApiParam()用于方法,参数,字段说明; 表示对参数的添加元数据(说明或是否必填等) 【暂时没用,当前使用[email protected]】
  • @ApiModel()用于类 表示对类进行说明,用于参数用实体类接收  【参考code2,效果图2,3】
  • @ApiModelProperty()用于方法,字段 表示对model属性的说明或者数据操作更改 【参考code2,效果图2,3】
  • @ApiIgnore()用于类,方法,方法参数 表示这个方法或者类被忽略 【参考code1,效果图1】
  • @ApiImplicitParam() 用于方法 表示单独的请求参数  【参考code1,效果图1】
  • @ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam 【参考code1,效果图1】

code1

 1 package com.mao.swagger.user.controller;
 2
 3 import org.springframework.http.HttpStatus;
 4 import org.springframework.http.MediaType;
 5 import org.springframework.web.bind.annotation.RequestBody;
 6 import org.springframework.web.bind.annotation.RequestMapping;
 7 import org.springframework.web.bind.annotation.RequestMethod;
 8 import org.springframework.web.bind.annotation.RequestParam;
 9 import org.springframework.web.bind.annotation.RestController;
10
11 import com.mao.swagger.beans.ResObject;
12 import com.mao.swagger.beans.User;
13
14 import io.swagger.annotations.Api;
15 import io.swagger.annotations.ApiImplicitParam;
16 import io.swagger.annotations.ApiImplicitParams;
17 import io.swagger.annotations.ApiOperation;
18 import springfox.documentation.annotations.ApiIgnore;
19
20 /**
21  * Hello world!
22  *
23  */
24 @Api(description = "用户接口")
25 @RestController
26 @RequestMapping("/userController")
27 public class UserController {
28
29     @ApiOperation(value = "新增用户" ,  notes="新增注册")
30     @RequestMapping(value="/createUser",method=RequestMethod.POST,consumes= MediaType.APPLICATION_JSON_VALUE)
31     public ResObject createUser(@RequestBody User user){
32         System.out.println("createUser:::"+user.toString());
33         return new ResObject(HttpStatus.OK.value(), "新增成功.");
34     }
35
36     @ApiOperation(value = "修改用户" ,  notes="修改用户")
37     @RequestMapping(value="/updateUser",method=RequestMethod.POST,consumes= MediaType.APPLICATION_JSON_VALUE)
38     public ResObject updateUser(@RequestBody User user){
39         System.out.println("updateUser:::"+user.toString());
40         return new ResObject(HttpStatus.OK.value(), "修改成功.");
41     }
42
43     @ApiOperation(value = "删除用户" ,  notes="删除用户")
44     @ApiImplicitParams({
45         @ApiImplicitParam(name = "userId", value = "用户标识", required = true, paramType = "query", dataType = "String")
46     })
47     @RequestMapping(value="/deleteUser",method=RequestMethod.DELETE)
48     public ResObject deleteUser(@RequestParam("userId") String userId){
49         System.out.println("deleteUser:::"+userId);
50         return new ResObject(HttpStatus.OK.value(), "删除成功.");
51     }
52
53     @ApiOperation(value = "查询用户" ,  notes="查询用户")
54     @ApiImplicitParam(name = "userId", value = "用户标识", required = true, paramType = "query", dataType = "String")
55     @RequestMapping(value="/queryUser",method=RequestMethod.GET)
56     public ResObject queryUser(@RequestParam("userId") String userId){
57         System.out.println("queryUser:::"+userId);
58         User user = new User(userId, "张三", "******", "[email protected]");
59         return new ResObject(HttpStatus.OK.value(), user);
60     }
61
62     @ApiOperation(value = "这个方法奖杯忽略" ,  notes="不会显示")
63     @ApiIgnore
64     @ApiImplicitParam(name = "userId", value = "用户标识", required = true, paramType = "query", dataType = "String")
65     @RequestMapping(value="/queryUser1",method=RequestMethod.GET)
66     public ResObject queryUser1(@RequestParam("userId") String userId){
67         System.out.println("queryUser:::"+userId);
68         User user = new User(userId, "张三", "******", "[email protected]");
69         return new ResObject(HttpStatus.OK.value(), user);
70     }
71
72 }

效果图1

code2

 1 package com.mao.swagger.beans;
 2
 3 import io.swagger.annotations.ApiModel;
 4 import io.swagger.annotations.ApiModelProperty;
 5
 6 @ApiModel(value="user", description="用户对象")
 7 public class User {
 8
 9     @ApiModelProperty(value="用户id",name="userId",example="001")
10     private String userId;
11
12     @ApiModelProperty(value="用户名",name="userName",example="mao2080")
13     private String userName;
14
15     @ApiModelProperty(value="密码",name="password",example="123456")
16     private String password;
17
18     @ApiModelProperty(value="邮箱",name="email",example="[email protected]")
19     private String email;
20
21     public User() {
22         super();
23     }
24
25     public User(String userId, String userName, String password, String email) {
26         super();
27         this.userId = userId;
28         this.userName = userName;
29         this.password = password;
30         this.email = email;
31     }
32
33     public String getUserId() {
34         return userId;
35     }
36
37     public void setUserId(String userId) {
38         this.userId = userId;
39     }
40
41     public String getUserName() {
42         return userName;
43     }
44
45     public void setUserName(String userName) {
46         this.userName = userName;
47     }
48
49     public String getPassword() {
50         return password;
51     }
52
53     public void setPassword(String password) {
54         this.password = password;
55     }
56
57     public String getEmail() {
58         return email;
59     }
60
61     public void setEmail(String email) {
62         this.email = email;
63     }
64
65     @Override
66     public String toString() {
67         return "User [userId=" + userId + ", userName=" + userName + ", password=" + password + ", email=" + email
68                 + "]";
69     }
70
71 }

效果图2

效果图3

2、参考网站

https://blog.csdn.net/z28126308/article/details/71126677

   https://blog.csdn.net/u014231523/article/details/76522486

   https://www.cnblogs.com/softidea/p/6251249.html

3、推广阅读

Springboot集成Swagger操作步骤

原文地址:https://www.cnblogs.com/mao2080/p/9021714.html

时间: 2024-11-09 06:03:37

Swagger常用参数用法的相关文章

maven用途、核心概念、用法、常用参数和命令、扩展

http://trinea.iteye.com/blog/1290898 本文由浅入深,主要介绍maven的用途.核心概念(Pom.Repositories.Artifact.Build Lifecycle.Goal)介绍.用法(Archetype意义及创建各种项目).maven常用参数和命令以及简单故障排除.maven扩展(eclipse.cobertura.findbugs.插件开发).maven配置. 本文较长,可根据个人需要有选择性的查看,比如先看用法再回过头来看核心概念 1.maven

grep命令常用参数及用法

1.grep介绍 grep命令是Linux系统中一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户.grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2. 2.grep常用参数 -a :将 binary 文件以 text 文件的方式搜寻数据

cat常用参数详解

cat常用参数详解 作者:尹正杰 最近,我的一个朋友对linux特别感兴趣,于是我觉得每天交给他一个命令的使用,这样一个月下来也会使用30个命令,基本的操作他应该是没啥问题啦,接下来让我们看看 今天的命令吧. 还记得我们昨天学的命令吗?让我们一起看看我的目录下有是吗文件或者目录吧: 通过昨天学的命令,我们看出来了log.txt是我最近修改的一个文件,那么如何去看这个文件的内容呢?让我们一起学习cat吧 一.Cat的基本用法就是cat + [参数(这个参数是可以省略的)] + 文件名称. 例如:

文本文件命令(wc,cut,sort,uniq)及常用参数

wc 字数统计 wc [OPTION]... [FILE]... -l, --lines 显示行数 -w, --words 显示单词数 -c, --bytes 显示字节数 -L, --max-line-length 打印最长行的长度. eg: cut 文件提取命令 官方解释:remove sections from each line of files 从文件中每一行选取部分 根据官方解释可以知道cut是以每一行为处理对象的 用法:cut OPTION... [FILE]... 常用参数: (其

arm-linux-gcc 常用参数讲解 gcc编译器使用方法

我们需要编译出运行在ARM平台上的代码,所使用的交叉编译器为 arm-linux-gcc.下面将arm-linux-gcc编译工具的一些常用命令参数介绍给大家. 在此之前首先介绍下编译器的工作过程,在使用GCC编译程序时,编译过程分为四个阶段: 1. 预处理(Pre-Processing) 2. 编译(Compiling) 3. 汇编(Assembling) 4. 链接(Linking) Linux程序员可以根据自己的需要让 GCC在编译的任何阶段结束,以便检查或使用编译器在该阶段的输出信息,或

Linux和MAC命令参数用法查询工具:cheat

一.什么是cheat? cheat是在GNU通用公共许可证下,为Linux命令行用户发行的交互式备忘单应用程序.简单来说,它没有提供其他额外多余的信息,只通过使用实例告诉你一个命令参数如何使用. 二.在Redhat.CentOS系统中安装Cheat: Cheat主要有两个依赖python和pip 1.安装python.pip # yum install python python-pip -y # pip install --upgrade pip(更新pip到最新版本) 注:pip是一个方便的

Nginx核心配置文件常用参数详解

Nginx核心配置文件常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 关于Nginx权威文档的话童鞋们可以参考Nginx官方文档介绍:http://nginx.org/en/docs/http/ngx_http_core_module.html.本篇博客只列出来了常用的参数介绍,用这些参数说明来定制化我们自己的nginx的web服务器等等. 一.正常运行的必备配置 1>.user username [groupname]; #以那个用户身份运行,以在configu

mysql命令常用参数实例讲解

mysql命令常用参数实例讲解 以下是mysql命令常用的参数,配合实例进行简单讲解 1,auto-rehash自动补全(表名及表中字段) --------------------------------------- [mysql] #no-auto-rehash auto-rehash --------------------------------------- mysql -u root --auto-rehash ------------------------------------

PS 常用参数——五周目

PS参数 常用参数 -A 显示所有进程(等价于-e)(utility) -a 显示一个终端的所有进程,除了会话引线 -N 忽略选择. -d 显示所有进程,但省略所有的会话引线(utility) -x 显示没有控制终端的进程,同时显示各个命令的具体路径.dx不可合用.(utility) -p pid 进程使用cpu的时间 -u uid or username 选择有效的用户id或者是用户名 -g gid or groupname 显示组的所有进程. U username 显示该用户下的所有进程,且