SpringBoot中的6種API請求參數(shù)讀取方式總結
使用Spring Boot開發(fā)API的時候,讀取請求參數(shù)是服務端編碼中最基本的一項操作,Spring Boot中也提供了多種機制來滿足不同的API設計要求。
接下來,就通過本文,為大家總結6種常用的請求參數(shù)讀取方式。如果你發(fā)現(xiàn)自己知道的不到6種,那么趕緊來查漏補缺一下。如果你知道的不止6種,那么告訴大家,一起互相學習一下吧~
@RequestParam
這是最最最最最最常用的一個了吧,用來加載URL中?之后的參數(shù)。
比如:這個請求/user?name=didispace 就可以如下面這樣,使用@RequestParam來加載URL中的name參數(shù)
@GetMapping("/user")
@ResponseBody()
public User findUserByName(@RequestParam("name") String name){
return userRepo.findByName(name);
}@PathVariable
這是RESTful風格API中常用的注解,用來加載URL路徑中的參數(shù)
比如:這個請求/user/1 就可以如下面這樣,使用@PathVariable來加載URL中的id參數(shù)
@GetMapping("/user/{id}")
@ResponseBody()
public User findUserById(@PathVariable("id") String id){
return userRepo.findById(id);
}@MatrixVariable
這個我們用的并不是很多,但一些國外系統(tǒng)有提供這類API參數(shù),這種API的參數(shù)通過;分割。
比如:這個請求/books/reviews;isbn=1234;topN=5; 就可以如下面這樣,使用@MatrixVariable來加載URL中用;分割的參數(shù)
@GetMapping("/books/reviews")
@ResponseBody()
public List<BookReview> getBookReviews(
@MatrixVariable String isbn, @MatrixVariable Integer topN) {
return bookReviewsLogic.getTopNReviewsByIsbn(isbn, topN);
}@RequestBody
這也是最常用的一個注解,用來加載POST/PUT請求的復雜請求體(也叫:payload)。比如,客戶端需要提交一個復雜數(shù)據(jù)的時候,就要將這些數(shù)據(jù)放到請求體中,然后服務端用@RequestBody來加載請求體中的數(shù)據(jù)
@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注解用來加載請求頭中的數(shù)據(jù),一般在業(yè)務系統(tǒng)中不太使用,但在基礎設施的建設中會比較常用,比如傳遞分布式系統(tǒng)的TraceID等。用法也很簡單,比如,假設我們將鑒權數(shù)據(jù)存在http請求頭中,那么就可以像下面這樣用@RequestHeader來加載請求頭中的Authorization參數(shù)
@GetMapping("/user")
@ResponseBody()
public List<User> getUserList(@RequestHeader("Authorization") String authToken) {
return userRepo.findAll();
}@CookieValue
當我們需要與客戶端保持有狀態(tài)的交互時,就需要用到Cookie。此時,服務端讀取Cookie數(shù)據(jù)的時候,就可以像下面這樣用@CookieValue來讀取Cookie中的SessionId數(shù)據(jù)
@GetMapping("/user")
@ResponseBody()
public List<User> getUserList(@CookieValue(name = "SessionId") String sessionId) {
return userRepo.findAll();
}到此這篇關于SpringBoot中的6種API請求參數(shù)讀取方式總結的文章就介紹到這了,更多相關SpringBoot請求參數(shù)讀取方式內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Spring的循環(huán)依賴、三級緩存解決方案源碼詳細解析
這篇文章主要介紹了Spring的循環(huán)依賴、三級緩存解決方案源碼詳細解析,在Spring中,由于IOC的控制反轉,創(chuàng)建對象不再是簡單的new出來,而是交給Spring去創(chuàng)建,會經歷一系列Bean的生命周期才創(chuàng)建出相應的對象,需要的朋友可以參考下2024-01-01
Spring?AI借助全局參數(shù)實現(xiàn)智能數(shù)據(jù)庫操作與個性化待辦管理
這篇文章主要介紹了Spring?AI借助全局參數(shù)實現(xiàn)智能數(shù)據(jù)庫操作與個性化待辦管理,本文給大家介紹的非常詳細,需要的朋友可以參考下2024-11-11
Java基礎知識精通注釋與數(shù)據(jù)類型及常量與變量
本文給大家介紹了Java的注釋與數(shù)據(jù)類型和常量變量,這些都是最基礎的知識,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04

