postmapping注解_Swagger常用注解

在使用swagger时候如果掌握一些注解的使用,则在开发过程中测试的时候可以事半功倍,尤其在与前端技术进行联调,前端技术在访问swagger中的每个api时,可以很清楚的知道每个url对应的请求类型、参数类型、参数是否非必输、参数个数等等,然后根据这些参数进行前端的快速开发,当然其他技术在测试功能的时候,也可以根据参数提示进行测试,下面介绍一些在开发过程中通常用的注解。

常用注解

1、@Api

说明每个controller层控制类的作用,即每个请求类
属性:tags:描述该类的作用

2、@RestController

它是复合注解,代表的是一个控制器,由于它同时拥有@Controller和@ResponseBody的作用,所在如果要返回JSON数据,则不需要在方法上面加@ResponseBody注解,但是它不能返回jsp、html页面

3、@RequestMapping、@GetMapping、@PostMapping、@PutMapping、@DeleteMapping

定义前端访问的url,可以写在控制类上,也可以写在控制类汇总的方法上面,常用的的写在控制类上面,一般会与它的衍生注解组合使用:@GetMapping 查询请求@PostMapping 添加请求@PutMapping 修改请求@DeleteMapping 删除请求

4、@ApiOperation

作用在控制类中的每个方法上,说明该类的作用
属性:value:说明该类的作用
以上这几个注解在代码中的使用例子如下:

//说明该类的作用
@Api(tags = "学生信息")
//指明该类为控制器
@RestController
//设置请求路径url
@RequestMapping("/student")
public class StudentController {
/**
* 根据id查询学生信息
* @param id 学生id
* @return
*/
@ApiOperation(value = "根据id查询学生信息")
@GetMapping("/query/{id}")
private List<Student> queryById( @ApiParam(value = "学生id", required = true) @PathVariable("id") Long id) {
List<Student> studentList = studentService.queryById(id);
return studentList;
}
}
swagger-ui展示结果如下:

d87153a61b4956416168a61e8671d887.png

5、@ApiParam

@ApiParam作用于请求方法上,定义api参数的注解,属性有:
name:api参数的英文名
value:api参数的描述
required:true表示参数必输,false标识参数非必输,默认为非必输
此注解通常与@RequestParam或者@PathVariable集合使用,因为它的作用只是定义每个参数(因此可以不使用,但是为了方便测试,加上效果更好),如果要获取前端的参数还需要通过@RequestParam或者@PathVariable来获取

6、@PathVariable

获取get请求url路径上的参数,即参数绑定的作用,通俗的说是url中"?"前面绑定的参数
代码示例:

 /**
* 根据id查询学生信息
* @param id 学生id
* @return
*/
@ApiOperation(value = "根据id查询学生信息")
@GetMapping("/query/{id}")
private List<Student> queryById( @ApiParam(name = "id", value = "学生id", required = true) @PathVariable("id") Long id) {
List<Student> studentList = studentService.queryById(id);
return studentList;
}
测试示例:

e1f08b36b0c111637a857bb9188e7098.png


请求url示例:http://127.0.0.1:8080/student/query/1

7、@RequestParam

获取前端传过来的参数,可以是get、post请求,通俗的说是url中"?"后面拼接的每个参数
代码示例:

 /**
* 根据id查询学生信息
* @param id 学生id
* @return
*/
@ApiOperation(value = "根据id查询学生信息")
@GetMapping("/query/student")
private List<Student> queryByIdStu( @ApiParam(name = "byId", value = "学生id", required = false) @RequestParam("id") Long id) {
List<Student> studentList = studentService.queryById(id);
return studentList;
}
测试示例:


请求url示例:http://127.0.0.1:8080/student/query/student?id=1

8、 @ApiImplicitParams、@ApiImplicitParam

定义参数的注解除了@ApiParam之外,这两个注解也可以定义参数
①、@ApiImplicitParams定义一组参数
②、@ApiImplicitParam写在@ApiImplicitParams中,定义每个参数的信息,属性为:
name:参数英文名称
value:参数中文名称
paramType:调用的url 参数形式,“query”为问号"?"后面的拼接参数,“path”为绑定的参数
代码示例:

/**
* 学生信息查询
* @param code 学生编号
* @param name 学会姓名
* @return
*/
@ApiImplicitParams({
@ApiImplicitParam(name = "code", value = "学生编号", paramType = "query", required = true),
@ApiImplicitParam(name = "name", value = "学会姓名", paramType = "query")
})
@ApiOperation(value = "查询学生信息")
@PostMapping("/query/student")
private String queryStudent(@RequestParam String code, @RequestParam String name) {
studentService.queryStudent(code,name);
return "query success";
}
测试示例:

8af9b1be5b047d2e9c943d9b1911dae6.png

270c3c8b860bb1b02c135e2b0376bc78.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java map 多个值_java 一个函数EnumMap返回多个值

在开发过程中&#xff0c;经常会有这种情况&#xff0c;就是一个函数需要返回多个值&#xff0c;这是一个问题&#xff01;&#xff01;网上这个问题的解决方法&#xff1a;1、使用map返回值&#xff1b;这个方法问题是&#xff0c;你并不知道如何返回值的key是什么&#xff0c…

python pandas 日期_python+pandas+时间、日期以及时间序列处理方法

pythonpandas时间、日期以及时间序列处理方法先简单的了解下日期和时间数据类型及工具 python标准库包含于日期(date)和时间(time)数据的数据类型&#xff0c;datetime、time以及calendar模块会被经常用到。 datetime以毫秒形式存储日期和时间&#xff0c;datetime.timedelta表…

java程序怎么都不是一个_java运行的流程-怎么运行java程序编了一个程序不知道怎么运行郁闷啊后缀文件名是 爱问知识人...

在初学java编程语言时&#xff0c;痛苦的事莫过于跟着示例一步步做&#xff0c;总是得不到想要的结果&#xff0c;这是很多初学者都会碰到的问题。下面详细教你运行第一个java应用程序(环境windows xp jdk 6。0)&#xff1a;第一步&#xff1a;下载并安装JDK 6。0&#xff0c;…

调用别的方法的返回值_Spring boot如何实现异步调用

Spring boot如何实现异步调用异步调用:一个可以无需等待被调用函数的返回值就让操作继续进行的方法举个例子异步调用就是你 喊 你朋友吃饭 &#xff0c;你朋友说知道了 &#xff0c;待会忙完去找你 &#xff0c;你就去做别的了。同步调用就是你 喊 你朋友吃饭 &#xff0c;你朋…

java excel 创建按钮_通过单击Excel按钮在Catia中设计零件

我已经在用宏编辑器构建的Catia V5中编写了一些宏&#xff0c;但我无法弄清楚如何从Excel访问Catia命令 .我想知道如何通过仅在excel文件圆柱体的半径和长度中创建一个简单的直圆柱体 .我想在Catia中输入不同的压力容器&#xff0c;在Excel中输入它们的直径和高度&#xff0c;然…

pythonspot_python-Spotipy-列表索引超出范围

编写Spotipy脚本以从给定专辑返回专辑曲目,我偶尔会遇到错误&#xff1a;album_id results["albums"]["items"][0]["uri"]IndexError: list index out of range这种错误往往发生在更多的流行歌手遍历所有专辑的时候.我猜结果列表已达到极限或以…

国防科大JAVA工程师笔试题_国防科大人工智能考博题答案

【实例简介】国防科大计算机学院考博试题 人工智能11-15年试题答案A-20年33(注主:图21的日2该是想反3):61(35),610)①到日1①bs15②①9-519海:S→B>D>印k0b4763到句2(013-13e(as|0⊙(升早巧一③Cm52B877③1315④①a3s93(62833106舞决:5>B→>D>2或5A>C>D→…

python四舍五入保留小数点后三位_Python中的“正确”四舍五入到小数点后3位

我可能遗漏了一些重要的东西&#xff0c;但我无法找到一种方法来在Python(2.7)中将浮点/小数“适当”舍入&#xff0c;至少舍入到小数点后三位。我的意思是1.2225应该四舍五入到1.223&#xff0c;而1.2224应该四舍五入到1.222。在我知道在Python中&#xff0c;round不适用于flo…

java 指代对象_java-This的理解

都知道this是一个指代作用吧&#xff0c;但指代的是什么&#xff1f;一般网上搜索的this 都说是“当前对象”&#xff0c;但这样说和没说区别一个样&#xff0c;什么是“当前对象”都说不清楚。但其实&#xff0c;this指代得分下面4种情况来说。有的是场景展示的(如一、三)&…

python 日历查询系统_python 日历

上章总结了python中time模块的使用&#xff0c;这次总结日历模块 calendar>>> import calendar>>> cal calendar.month(2016,1)>>> calJanuary 2016\nMo Tu We Th Fr Sa Su\n 1 2 3\n 4 5 6 7 8 9 10\n11 12 13 14 15 16 17\n1…

在java语法中继承_java中的继承

一、继承&#xff1a;1.如果不使用继承&#xff0c;会出现以下一些问题&#xff1a;(1)代码重复(2)如果要修改的话&#xff0c;两个类都需要修改。2.继承体现的是一种is a 的关系。eg:Dog is a Pet;apple is a Fruit;Student is a Person;二、子类可以继承到父类的哪些财产呢&a…

照片识别出错_AI跨年龄人脸识别技术在跨年龄寻亲的应用简析

9月3日&#xff0c;央视财经《经济半小时》栏目播出了一段有关失踪儿童找回的视频新闻。在这则新闻中&#xff0c;跨年龄人脸识别技术是最为核心的功臣&#xff0c;深圳警方利用跨年龄人脸识别技术&#xff0c;根据一张3岁孩童的儿童照片找回了失踪了十几年的孩子&#xff0c;让…

python内置的数字运算函数_Python 内置函数1

abs(x)函数返回绝对值参数可以是&#xff1a;负数、正数、浮点数或者长整形print(abs(-1.2))# 结果1.2cmp(x, y)函数 (python3已删)中文说明&#xff1a;比较两个对象x和y&#xff0c;如果x < y ,返回负数&#xff1b;x y, 返回0&#xff1b;x > y,返回正数。版本&#…

java音频采样_音频重采样的坑

背景使用webrtc进行语音通话&#xff0c;网络正常的情况下&#xff0c;延迟比较大。进行过如下分析&#xff1a;(1)从socket收包到webrtc处理完音频没有耗时长的操作&#xff0c;排除了webrtc处理音频引入的延迟(2)与其他终端进行通话无延迟通过以上的分析&#xff0c;最终确认…

python stdout清空_python中stdout输出不缓存的设置方法

考虑以下python程序&#xff1a;#!/usr/bin/env pythonimport syssys.stdout.write("stdout1 ")sys.stderr.write("stderr1 ")sys.stdout.write("stdout2 ")sys.stderr.write("stderr2 ")其中的sys.stdout.write也可以换成print。运行…

分段线性判别法 java_线性判别分析(Linear Discriminant Analysis)(二)

4. 实例将3维空间上的球体样本点投影到二维上&#xff0c;W1相比W2能够获得更好的分离效果。PCA与LDA的降维对比&#xff1a;PCA选择样本点投影具有最大方差的方向&#xff0c;LDA选择分类性能最好的方向。LDA既然叫做线性判别分析&#xff0c;应该具有一定的预测功能&#xff…

软件测试用例_大话软件测试用例要素

我们经常都知道一个测试用例里面包含以下几个要素&#xff1a;1&#xff0c;用例编号2&#xff0c;模块3&#xff0c;场景4&#xff0c;用例名称5&#xff0c;前置条件6&#xff0c;测试等级7&#xff0c;操作步骤8&#xff0c;预期结果(需求要求的结果)9&#xff0c;实际结果1…

cario java_Cairo图形库 概述

参考&#xff1a;http://blog.sina.com.cn/s/blog_538732a70100p9ay.htmlCairo图形库 1. 概述欢迎来到Cairo图形教程.这个教程将教你Cairo2D矢量绘图库基本的和一些高级的主题.大部分例程我们使用GTK编程库. 这个教程是用C语言来完成的.(如果可能,我会附加上一些cairomm的东西…

python大神推荐_大神推荐!!!高评分书籍轻松带你入门Python

上次讲到了初学者阶段必看的书籍。今天给大家继续讲讲进阶者阶段当你对Python有了一定的了解&#xff0c;并在生活或者工作中使用过一段时间&#xff0c;那么你就可以考虑进阶相关的书籍&#xff0c;请看下面这3本&#xff1a;《Python深度学习》豆瓣评分&#xff1a;9.6推荐指…

java中this图解_JAVA-初步认识-第七章-this关键字的使用场景和原理图解

一.this有什么用&#xff1f;我们用例子的形式来体现一下。下面的截图说明&#xff0c;给人对象一初始化的时候&#xff0c;赋值个姓名。赋值姓名的时候&#xff0c;拿n赋值给name&#xff0c;DOS显示创建对象时&#xff0c;构造函数初始化成功。在例子中&#xff0c;我们将“旺…