iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0
Mobile Development

[Android Studio & Spring boot 30天挑戰]系列 第 25

[Android Studio & Spring boot 30天挑戰] Day25 - API 各種資料傳遞方式

  • 分享至 

  • xImage
  •  

以滿足不同今天要介紹 Spring Boot 用不同的註解來處理不同的資料獲取方式和請求標籤,的應用程序需求。在這篇文章中,我們將深入探討常見的資料獲取方式,並提供相關的程式碼示例。
/images/emoticon/emoticon12.gif

1. 使用@RequestParam處理URL查詢參數

如果你需要處理URL中的查詢參數(Query Parameters),可以使用@RequestParam註解。以下是一個示例:

@GetMapping("/user")
public String search(@RequestParam("id") String id) {
    // 在這裡,我們可以使用query參數來執行搜索
    return "Search query: " + id;
}

https://ithelp.ithome.com.tw/upload/images/20230825/20150369IQCe2MuUtN.png
當訪問/api/search?query=spring時,Spring Boot將擷取query查詢參數並映射到query參數中。

2. 使用@RequestHeader獲取HTTP標頭信息

如果你需要獲取HTTP請求的標頭信息,可以使用@RequestHeader註解。以下是一個示例:

@GetMapping("/user-agent")
public String getUserAgent(@RequestHeader("User-Agent") String userAgent) {
    // 在這裡,我們可以獲取User-Agent標頭信息
    return "User-Agent: " + userAgent;
}

這個方法將返回User-Agent標頭信息,該信息通常包含了發出請求的用戶代理(瀏覽器或應用程式)相關信息。
https://ithelp.ithome.com.tw/upload/images/20230825/20150369GinVLdeUzQ.png

3. 使用@PathVariable接受多個路徑參數

有時你可能需要接受多個路徑變數。你可以在方法參數中使用多個@PathVariable來實現這一點:

@PostMapping("/user/{userId}/{userName}")
public String getOrderDetails(
        @PathVariable("userId") Long userId,
        @PathVariable("userName") String name) {
    // 在這裡,我們可以使用userId和orderId來查詢訂單詳細信息
    return "User ID: " + userId + ", User Name: " + name;
}

當訪問/api/user/100/chocolee時,Spring Boot將映射userId為100,userName為chocolee時。
https://ithelp.ithome.com.tw/upload/images/20230825/20150369kGcCqWPZOt.png

4. 使用@RequestBody處理請求主體

如果你需要處理HTTP POST或PUT請求的主體(Body),可以使用@RequestBody註解。以下是一個示例:

@PostMapping("/add-user")
public String addUser(@RequestBody User user) {
    // 在這裡,我們可以處理傳遞的用戶對象
    // 例如,將用戶信息保存到資料庫
    return "User Id: " + user.getId() + "   User Name: " + user.getName();
}

在這個方法中,我們接受一個User對象,該對象包含了用戶的相關信息。這個對象可以是JSON或XML格式,Spring Boot將自動將請求主體轉換為對應的Java對象。
https://ithelp.ithome.com.tw/upload/images/20230825/201503698kGZL6pXK2.png


上一篇
[Android Studio & Spring boot 30天挑戰] Day24- 各種請求標籤
下一篇
[Android Studio & Spring boot 30天挑戰] Day26- Spring boot 傳送 mail
系列文
[Android Studio & Spring boot 30天挑戰]30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言