总结Spring Boot中6种API请求参数读取方式笔记
后端在使用 Spring Boot 开发 API 的时候,读取请求参数是服务端编码中最基本的一项操作,Spring Boot 中也提供了多种机制来满足不同的 API 设计要求。

接下来,我将为大家总结 6 种常用的请求参数读取方式。如果你发现自己知道的不到 6 种,那么赶紧来查漏补缺一下。如果你知道的不止 6 种,那么告诉大家,一起互相学习一下吧~
@RequestParam
这是最最最最最最常用的一个了吧,用来加载 URL 中?之后的参数。
比如:这个请求/user?name=didispace 就可以如下面这样,使用@RequestParam来加载 URL 中的 name 参数。
@GetMapping("/user")
@ResponseBody()
public User findUserByName(@RequestParam("name") String name){
return userRepo.findByName(name);
}
@PathVariable
这是 RESTful 风格 API 中常用的注解,用来加载 URL 路径中的参数。
比如:这个请求/user/1 就可以如下面这样,使用@PathVariable来加载 URL 中的 id 参数。
@GetMapping("/user/{id}")
@ResponseBody()
public User findUserById(@PathVariable("id") String id){
return userRepo.findById(id);
}
@MatrixVariable
这个我们用的并不是很多,但一些国外系统有提供这类 API 参数,这种 API 的参数通过;分割。
比如:这个请求/books/reviews;isbn=1234;topN=5; 就可以如下面这样,使用@MatrixVariable来加载 URL 中用;分割的参数。
@GetMapping("/books/reviews")
@ResponseBody()
public List<BookReview> getBookReviews(
@MatrixVariable String isbn, @MatrixVariable Integer topN) {
return bookReviewsLogic.getTopNReviewsByIsbn(isbn, topN);
}
@RequestBody
这也是最常用的一个注解,用来加载 POST/PUT 请求的复杂请求体(也叫:payload)。比如,客户端需要提交一个复杂数据的时候,就要将这些数据放到请求体中,然后服务端用@RequestBody来加载请求体中的数据。
@PostMapping("/add")
public boolean addAccounts(@RequestBody List<Account> accounts) throws SQLException {
accounts.stream().forEach(a -> {
a.setCreatedOn(Timestamp.from(Instant.now()));
a.setLastLogin(Timestamp.from(Instant.now()));
});
return notificationLogic.addAccounts(accounts);
}
@RequestHeader
@RequestHeader注解用来加载请求头中的数据,一般在业务系统中不太使用,但在基础设施的建设中会比较常用,比如传递分布式系统的 TraceID 等。用法也很简单,比如,假设我们将鉴权数据存在 http 请求头中,那么就可以像下面这样用@RequestHeader来加载请求头中的Authorization参数。
@GetMapping("/user")
@ResponseBody()
public List<User> getUserList(@RequestHeader("Authorization") String authToken) {
return userRepo.findAll();
}
@CookieValue
当我们需要与客户端保持有状态的交互时,就需要用到 Cookie。此时,服务端读取 Cookie 数据的时候,就可以像下面这样用@CookieValue来读取 Cookie 中的SessionId数据。
@GetMapping("/user")
@ResponseBody()
public List<User> getUserList(@CookieValue(name = "SessionId") String sessionId) {
return userRepo.findAll();
}
结语
好了,今天的后端 Spring Boot 中 6 种 API 请求参数读取方式笔记就分享就到这里。这些方式你都知道吗?如果有学到新知识,欢迎点赞支持。如果你还知道其他方式,也欢迎评论分享。更多请关注码云笔记其它相关文章!
以上关于总结Spring Boot中6种API请求参数读取方式笔记的文章就介绍到这了,更多相关内容请搜索码云笔记以前的文章或继续浏览下面的相关文章,希望大家以后多多支持码云笔记。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 admin@mybj123.com 进行投诉反馈,一经查实,立即处理!
重要:如软件存在付费、会员、充值等,均属软件开发者或所属公司行为,与本站无关,网友需自行判断
码云笔记 » 总结Spring Boot中6种API请求参数读取方式笔记
微信
支付宝