内容简介:@RequestParam将方法参数绑定到Web请求参数,语法:@RequestParam <数据类型> <变量名称>;代码案例:
@RequestParam将方法参数绑定到Web请求参数,语法:
@RequestParam <数据类型> <变量名称>;
代码案例:
@RestController
@RequestMapping("/api")
@Validated
public class HelloWorldController {
@GetMapping("/hello")
public ResponseEntity<?> sayHello(
@RequestParam @Size(min= 1, max = 5, message =
"firstname length must be between 1 and 5") String firstname,
@RequestParam String middlename,
@RequestParam(required = false) String lastname){
/* check lastname value */
lastname = lastname != null ? lastname : "{lastname-is-optional}";
return ResponseEntity.ok("Hello " + firstname + " " + middlename + " " + lastname);
}
}
- @Validated - 对控制器的每个方法执行验证(如果有)。
- @RequestParam - 在变量中接受Web请求参数。( 注意 :所有使用 @RequestParam 注释的变量接受的请求参数都是强制对应的,除非该参数设置 required = false @RequestParam(required = false) )
- javax.validation.constraints 的 @Size 用于验证请求参数的长度,不符合条件将抛出 ConstraintViolationException 。
- @RequestParam String middlename,:接受变量 middlename中的 强制对应 参数。如果请求中不存在参数,则spring将抛出 MissingServletRequestParameterException
- @RequestParam(required = false) String lastname):接受变量 lastname中的 可选 参数。
如果结合Swagger的API注释,你的代码如下:
@ApiOperation(value = "")
@RequestMapping(method = GET, value = "/customcollection/{id}/data")
public Iterable<CustomeType> getData(@ApiParam(value = "The identifier of the time series.")
@PathVariable String id,
@ApiParam(name = "startDate", value = "start date", defaultValue = "")
@RequestParam("startDate") String startDate,
@ApiParam(name = "endDate", value = "end date", defaultValue = "")
@RequestParam("endDate") String endDate)
其中ApiParam是swagger的参数,RequestParam是REST API,如果使用模型对象替代一个个RequestParam,则更加使得代码精简,然后使用 JSR 303:Bean Validation 对模型对象中字段进行校验:
public class Person {
@NotNull
private int id;
@NotBlank
@Size(min = 1, max = 20)
private String firstName;
@NotBlank
@Pattern(regexp ="[SOME REGULAR EXPRESSION]")
private String lastName;
@Min(0)
@Max(100)
private int age;
//... Constructor, getters, setters, ...
}
使用Swagger和SpringFox文档化Spring Boot REST API
Spring Boot
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- C++ 值传递、指针传递、引用传递详解
- 简明笔记:指针传递和值传递
- golang中的函数参数值传递和引用传递
- 现代编程语言的值传递与引用传递
- 这一次,彻底解决Java的值传递和引用传递
- Python函数中参数是值传递,还是引用传递?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Qt 5.9 C++开发指南
王维波、栗宝鹃、侯春望 / 人民邮电出版社 / 2018-5-1 / 89.00元
本书以Qt 5.9 LTS版本为开发平台,详细介绍了Qt C++开发应用程序的技术,包括Qt应用程序的基本架构、信号与槽工作机制、图形显示的Graphics/View架构、数据编辑和显示的Model/View架构、对话框和多窗口的设计与调用方法等,介绍了常用界面组件、文件读写、绘图、图表、数据可视化、数据库、多线程、网络和多媒体等模块的使用。每个编程主题都精心设计了完整的实例程序。 通过阅读......一起来看看 《Qt 5.9 C++开发指南》 这本书的介绍吧!