欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot中API接口參數(shù)獲取方式小結(jié)

 更新時間:2024年06月26日 09:15:35   作者:是猛男啊  
在Spring Boot中,API接口參數(shù)可以通過多種方式獲取,具體取決于你定義的API接口參數(shù)類型(如路徑參數(shù)、查詢參數(shù)、請求體參數(shù)、請求頭等),本文給大家就介紹了一些常見的參數(shù)獲取方式,需要的朋友可以參考下

引言

在Spring Boot中,API接口參數(shù)可以通過多種方式獲取,具體取決于你定義的API接口參數(shù)類型(如路徑參數(shù)、查詢參數(shù)、請求體參數(shù)、請求頭等)。以下是一些常見的參數(shù)獲取方式以及對應(yīng)的Java樣例代碼:

1.路徑參數(shù)(Path Variable)

使用@PathVariable注解從URL路徑中獲取參數(shù)。

    @RestController
    @RequestMapping("/users")
    public class UserController {
 
        @GetMapping("/{id}")
        public ResponseEntity<String> getUserById(@PathVariable Long id) {
            // 處理邏輯
            return ResponseEntity.ok("User with ID: " + id);
        }
    }

2.查詢參數(shù)(Query Parameter)

使用@RequestParam注解從URL查詢字符串中獲取參數(shù)。

    @RestController
    @RequestMapping("/users")
    public class UserController {
 
        @GetMapping("/search")
        public ResponseEntity<String> searchUsers(@RequestParam String name) {
            // 處理邏輯
            return ResponseEntity.ok("Searching for user with name: " + name);
        }
 
        // 也可以設(shè)置默認值
        @GetMapping("/searchWithDefault")
        public ResponseEntity<String> searchUsersWithDefault(@RequestParam(defaultValue = "John") String name) {
            // 處理邏輯
            return ResponseEntity.ok("Searching for user with name: " + name);
        }
    }

3.請求體參數(shù)(Request Body)

使用@RequestBody注解從HTTP請求體中獲取參數(shù),通常用于POST或PUT請求。

    @RestController
    @RequestMapping("/users")
    public class UserController {
 
        @PostMapping("/")
        public ResponseEntity<String> createUser(@RequestBody User user) {
            // 處理邏輯
            return ResponseEntity.ok("User created with name: " + user.getName());
        }
 
        // 假設(shè)User類如下
        static class User {
            private String name;
            // getters and setters
        }
    }

4.請求頭參數(shù)(Request Header)

通常不直接使用注解來獲取請求頭參數(shù),但可以通過HttpServletRequest對象或@RequestHeader注解來獲取。

使用@RequestHeader注解:

    @RestController
    @RequestMapping("/users")
    public class UserController {
 
        @GetMapping("/")
        public ResponseEntity<String> getUsers(@RequestHeader("Authorization") String authToken) {
            // 處理邏輯
            return ResponseEntity.ok("Authorization token: " + authToken);
        }
    }

使用HttpServletRequest對象:

    @RestController
    @RequestMapping("/users")
    public class UserController {
 
        @GetMapping("/")
        public ResponseEntity<String> getUsers(HttpServletRequest request) {
            String authToken = request.getHeader("Authorization");
            // 處理邏輯
            return ResponseEntity.ok("Authorization token from HttpServletRequest: " + authToken);
        }
    }

5.@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();
}

6.@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);
}

7.表單數(shù)據(jù)(Form Data)

對于POST請求中的表單數(shù)據(jù),通??梢允褂聾ModelAttribute或@RequestParam來獲取。但如果表單數(shù)據(jù)作為請求體發(fā)送(Content-Type: application/x-www-form-urlencoded),則可以直接使用@RequestParam。如果表單數(shù)據(jù)是JSON格式,則應(yīng)使用@RequestBody。

8.Servlet API的其他部分

你還可以使用HttpServletResponse、HttpSession等Servlet API的其他部分來處理請求和響應(yīng)。但在Spring Boot中,通常推薦使用Spring MVC提供的高級抽象來簡化開發(fā)。

注:為了正確解析請求體中的JSON數(shù)據(jù),需要在Spring Boot項目中添加適當(dāng)?shù)腏SON庫(如Jackson),并且確保請求的Content-Type設(shè)置為application/json。

以上就是SpringBoot中API接口參數(shù)獲取方式小結(jié)的詳細內(nèi)容,更多關(guān)于SpringBoot API接口參數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JavaCV實現(xiàn)圖片中人臉檢測的示例代碼

    JavaCV實現(xiàn)圖片中人臉檢測的示例代碼

    這篇文章主要介紹了如何利用JavaCV實現(xiàn)圖片中人臉檢測的功能,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的可以了解一下
    2022-11-11
  • Java輸出數(shù)組的3種方法

    Java輸出數(shù)組的3種方法

    這篇文章主要給大家介紹了關(guān)于Java輸出數(shù)組的3種方法,對于初學(xué)者來說,數(shù)組的輸入輸出是一個麻煩的問題,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • java并發(fā)編程專題(六)----淺析(JUC)Semaphore

    java并發(fā)編程專題(六)----淺析(JUC)Semaphore

    這篇文章主要介紹了java JUC)Semaphore的相關(guān)資料,文中示例代碼非常詳細,供大家參考和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • springboot全局異常處理代碼實例

    springboot全局異常處理代碼實例

    這篇文章主要介紹了springboot全局異常處理代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • Java集合框架入門之泛型和包裝類

    Java集合框架入門之泛型和包裝類

    Java 泛型(generics)是 JDK 5 中引入的一個新特性, 泛型提供了編譯時類型安全檢測機制,該機制允許程序員在編譯時檢測到非法的類型。泛型的本質(zhì)是參數(shù)化類型,也就是說所操作的數(shù)據(jù)類型被指定為一個參數(shù)
    2021-10-10
  • java如何實現(xiàn)postman中用x-www-form-urlencoded參數(shù)的請求

    java如何實現(xiàn)postman中用x-www-form-urlencoded參數(shù)的請求

    在Java開發(fā)中,模擬Postman發(fā)送x-www-form-urlencoded類型的請求是一個常見需求,本文主要介紹了如何在Java中實現(xiàn)這一功能,首先,需要通過導(dǎo)入http-client包來創(chuàng)建HTTP客戶端,接著,利用該客戶端發(fā)送Post請求
    2024-09-09
  • springboot臨時文件存儲目錄配置方式

    springboot臨時文件存儲目錄配置方式

    這篇文章主要介紹了springboot臨時文件存儲目錄配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java利用反射如何查找使用指定注解的類詳解

    Java利用反射如何查找使用指定注解的類詳解

    這篇文章主要給大家介紹了關(guān)于Java利用反射如何查找使用指定注解的類的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • Java CompletableFuture 異步超時實現(xiàn)深入研究

    Java CompletableFuture 異步超時實現(xiàn)深入研究

    這篇文章主要為大家介紹了Java CompletableFuture 異步超時實現(xiàn)深入研究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • java正則替換sql中的參數(shù)實例代碼

    java正則替換sql中的參數(shù)實例代碼

    這篇文章主要給大家介紹了關(guān)于java正則替換sql中參數(shù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-10-10

最新評論