我正在研究一個 API,需要拋出一個看起來像這樣的例外
"error": "sortBy parameter is invalid"
}
如果按引數排序不是我的預定值之一,我有一些引數可以做到這一點,因為這就是我的控制器的樣子
@GetMapping("/api/posts")
public ResponseEntity<List<Post>> getPostResponse(@RequestParam String tag, Optional<String> sortBy,
Optional<String> direction) throws InvalidSortBy {
RestTemplate postResponseTemplate = new RestTemplate();
URI postUri = UriComponentsBuilder.fromHttpUrl("urlHere")
.queryParam("tag", tag)
.queryParamIfPresent("sortBy", sortBy)
.queryParamIfPresent("direction", direction)
.build()
.toUri();
ResponseEntity<PostResponse> response = postResponseTemplate.getForEntity(postUri, PostResponse.class);
ResponseEntity<List<Post>> newResponse = responseService.createResponse(response, sortBy, direction);
return newResponse;
}
}
我洗掉了 url,但它適用于對傳入資料進行排序,但我需要驗證并拋出正確的錯誤,我真的不確定如何以所需的格式執行它,如 json,任何幫助表示贊賞
uj5u.com熱心網友回復:
首先,您需要處理您的例外并根據錯誤解決它,我建議您在將錯誤代碼翻譯為相應的訊息將它們作為 json 發送,您可以參考下面的執行緒以獲取有關以下 SO 執行緒的更多詳細資訊
如何在 Spring Boot 中以 JSON 形式拋出例外
@ExceptionHandler
@ExceptionHandler 告訴 Spring 應該為給定的例外呼叫我們的哪些方法
@RestControllerAdvice
使用
@RestControllerAdvicewhich contains @ControllerAdvice 將周圍的類注冊為每個 @Controller 應該知道的內容,并使用 @ResponseBody 告訴 Spring 將該方法的回應呈現為 JSON
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/419240.html
標籤:
