成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

掌握Spring Boot中六種API請求參數處理方法

開發 前端
當我們需要與客戶端保持有狀態的交互時,就需要用到Cookie。此時,服務端讀取Cookie數據的時候,就可以像下面這樣用@CookieValue?來讀取Cookie中的SessionId數據。

使用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();
}

好了,今天的分享就到這里。

責任編輯:武曉燕 來源: 一安未來
相關推薦

2024-05-30 08:51:28

Spring數據分布式

2024-12-18 16:19:51

2025-01-03 08:48:20

列表推導式Python編程

2025-02-03 09:00:00

API接口性能

2023-06-01 16:45:11

React開發JavaScript

2009-12-16 14:55:44

ISDN路由故障

2023-09-06 11:35:11

2023-04-26 08:41:16

Git撤消更改

2024-10-12 08:18:21

Spring接口組件

2025-06-17 08:25:00

Kubernetes集群容器

2023-08-15 15:44:55

React開發

2022-12-06 10:39:43

Spring事務失效

2010-10-08 11:13:22

MySQL修改密碼

2020-12-15 10:54:22

物聯網互聯網IoT

2011-02-24 10:56:34

人才

2011-06-23 18:57:10

網站推廣

2024-10-14 13:26:42

2023-11-06 08:15:42

遍歷列表Python

2020-10-27 10:33:01

物聯網

2009-02-11 09:46:00

ASON網絡演進
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区四区电影 | 国产免费xxx| 精品欧美一区二区精品久久久 | 91精品一区| 久久精品国产一区二区电影 | 国产男人的天堂 | 国产色播av在线 | 国产乱码精品一品二品 | 九九久久久久久 | 日本一区二区影视 | 成人国产午夜在线观看 | 夜夜草| 国产精品久久久久久久久久久久久 | 日韩精品 电影一区 亚洲 | 亚洲综合在 | 国产精品一区二区免费看 | 一区中文字幕 | 二区成人| 国产欧美精品在线观看 | 亚洲国产成人精品久久久国产成人一区 | 国产一区二区三区久久 | 国产一级片免费看 | 国产美女一区二区三区 | 国产影音先锋 | 一级高清视频 | 视频精品一区 | 久久1区 | 激情五月婷婷在线 | 日本不卡免费新一二三区 | 久久精品高清视频 | www.伊人.com| 色伊人久久 | 一区二区亚洲 | 成人性生交大片免费看中文带字幕 | 欧美激情视频一区二区三区在线播放 | 日韩成人在线观看 | 九九九久久国产免费 | 观看av | 亚洲人久久 | 一区二区三区四区视频 | 久久国产欧美日韩精品 |