iT邦幫忙

2023 iThome 鐵人賽

DAY 28
0
Mobile Development

Android Studio 30天進階學習系列 第 28

Android Studio 30天進階學習-DAY28_SpringBoot_將資料以Json格式進行讀寫的方式(ResponseEntity使用與說明)

  • 分享至 

  • xImage
  •  

今天要說明如何將資料使用Json格式寫入及讀取,這邊會以List的方式依序寫入Json格式並寫入流水編號,並在Get的時候讀取所有的User List資料,以及對於ResponseEntity的功能進行說明與範例建立與結果展示

ResponseEntity說明與使用

  • 概述:
    • ResponseEntity 可以包含一個泛型參數,用於指定響應的主體類型。例如: ResponseEntity<String> 表示一個包含字符串主體的 HTTP 響應。
    • ResponseEntity 允許你設定 HTTP 狀態碼、自定義標頭、訊息主體等。它通常用於控制器方法中,用於返回 HTTP 響應。
  • 常用的 ResponseEntity 方法:
    • ok(T body):創建一個成功的 HTTP 響應,可以指定主體 body。
    • status(HttpStatus status):設定 HTTP 狀態碼。
    • header(String headerName, String headerValue):設定 HTTP 響應標頭。
    • headers(HttpHeaders headers):設定多個 HTTP 響應標頭。
    • body(T body):設定 HTTP 響應的主體。
    • build():構建 ResponseEntity 實例。

這邊撰寫兩個範例,一個回應HTTP狀態為error的結果,一個為Custom header回應OK的結果

// Error回應
@ResponseBody
@GetMapping("/response-entity-example")
public ResponseEntity<String> responseEntityExample() {
    String errorMessage = "Operation failed!";
    return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(errorMessage);
}

// 自訂標頭回應OK
@ResponseBody
@GetMapping("/custom-header")
public ResponseEntity<String> customHeader() {
    String responseBody = "Custom header example!";

    HttpHeaders headers = new HttpHeaders();
    headers.add("Custom-Header", "Value");

    return ResponseEntity.ok().headers(headers).body(responseBody);
}
  • 結果截圖
    • Error回應截圖
      https://ithelp.ithome.com.tw/upload/images/20231008/20150370s6rt3ymHWV.png
    • OK回應截圖
      https://ithelp.ithome.com.tw/upload/images/20231008/20150370pKwNhjsXCF.png

上面可以看到自訂的Header為Value並且HTTP狀態為 OK的回應結果。

回應Json格式及輸入Json格式的程式碼撰寫

這邊以Get和Post的方式來作範例撰寫

@ResponseBody
@GetMapping("/get-all-user-info")
public ResponseEntity<List<User>> getAllUserInfo() {
    if (userList.isEmpty()) {
        throw new UserException(HttpStatus.NOT_FOUND + ", User is empty");
    }else{
        return ResponseEntity.ok(userList);
    }
}

@ResponseBody
@PostMapping("/add-user-info")
public ResponseEntity<User> addUserInfo(@RequestParam String name, @RequestParam String age) {
    User user = new User(userCounter++, name, age); // 使用流水號編號
    userList.add(user);
    return ResponseEntity.ok(user); // 返回新增的使用者物件作為JSON
}
  • 結果顯示
    • 新增資料的回覆格式
      https://ithelp.ithome.com.tw/upload/images/20231008/20150370AiyjqAZQVH.png
    • 查看結果
      https://ithelp.ithome.com.tw/upload/images/20231008/20150370dCJg4aZdl6.png

以上是今天關於ResponseEntity如何以Json格式將User的資料進行讀寫,以及其他的功能說明與使用範例


上一篇
Android Studio 30天進階學習-DAY27_SpringBoot_基礎註解標籤與常見的RESTful Web註解標籤說明與簡易Demo操作
下一篇
Android Studio 30天進階學習-DAY29_SpringBoot_Thymeleaf的說明與簡易POST傳值功能
系列文
Android Studio 30天進階學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言