Spring Boot中的 6 種API請求參數(shù)讀取方式示例詳解
使用Spring Boot開發(fā)API的時候,讀取請求參數(shù)是服務(wù)端編碼中最基本的一項操作,Spring Boot中也提供了多種機(jī)制來滿足不同的API設(shè)計要求。
接下來,就通過本文,為大家總結(jié)6種常用的請求參數(shù)讀取方式。如果你發(fā)現(xiàn)自己知道的不到6種,那么趕緊來查漏補(bǔ)缺一下。如果你知道的不止6種,那么告訴大家,一起互相學(xué)習(xí)一下吧~
@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風(fēng)格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請求的復(fù)雜請求體(也叫:payload)。比如,客戶端需要提交一個復(fù)雜數(shù)據(jù)的時候,就要將這些數(shù)據(jù)放到請求體中,然后服務(wù)端用@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è)務(wù)系統(tǒng)中不太使用,但在基礎(chǔ)設(shè)施的建設(shè)中會比較常用,比如傳遞分布式系統(tǒng)的TraceID等。用法也很簡單,比如,假設(shè)我們將鑒權(quán)數(shù)據(jù)存在http請求頭中,那么就可以像下面這樣用@RequestHeader
來加載請求頭中的Authorization
參數(shù)
@GetMapping("/user") @ResponseBody() public List<User> getUserList(@RequestHeader("Authorization") String authToken) { return userRepo.findAll(); }
@CookieValue
當(dāng)我們需要與客戶端保持有狀態(tài)的交互時,就需要用到Cookie。此時,服務(wù)端讀取Cookie數(shù)據(jù)的時候,就可以像下面這樣用@CookieValue
來讀取Cookie中的SessionId
數(shù)據(jù)
@GetMapping("/user") @ResponseBody() public List<User> getUserList(@CookieValue(name = "SessionId") String sessionId) { return userRepo.findAll(); }
到此這篇關(guān)于Spring Boot中的 6 種API請求參數(shù)讀取方式的文章就介紹到這了,更多相關(guān)Spring Boot API請求參數(shù)讀取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
idea企業(yè)開發(fā)之新建各類型項目的詳細(xì)教程
這篇文章主要介紹了idea企業(yè)開發(fā)之新建各類型項目的詳細(xì)教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12詳解Spring Boot + Mybatis 實(shí)現(xiàn)動態(tài)數(shù)據(jù)源
這篇文章主要介紹了Spring Boot + Mybatis 實(shí)現(xiàn)動態(tài)數(shù)據(jù)源,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04對Jpa中Entity關(guān)系映射中mappedBy的全面理解
這篇文章主要介紹了對Jpa中Entity關(guān)系映射中mappedBy的全面理解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-12-12Java處理時間格式CST和GMT轉(zhuǎn)換方法示例
這篇文章主要給大家介紹了關(guān)于Java處理時間格式CST和GMT轉(zhuǎn)換方法的相關(guān)資料,相信很多小伙伴在時間格式轉(zhuǎn)換的時候非常頭疼,文中通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09java中PO、VO、BO、POJO、DAO、DTO、TO、QO、Bean、conn的理解
這篇文章主要介紹了java中PO、VO、BO、POJO、DAO、DTO、TO、QO、Bean、conn的理解,需要的朋友可以參考下2020-02-02