我正在使用Spring Boot和Maven開發一個API服務。問題是我想控制拋給客戶端的Required request body is missing例外。
例如,我向客戶端提供了一個帶有POST方法的API。當客戶端在沒有Body的情況下呼叫API時,Spring Boot將向客戶拋出錯誤。Spring Boot將在body回應中拋出錯誤,像這樣,
{
"timestamp"/span>。"2021-09-14T18:05:47.992 00:00",
"status": 400,
"錯誤": "Bad Request",
"跟蹤": "org.springframework.http. converter.HttpMessageNotReadableException: 缺少必要的請求體:public org.springframework.http.ResponseEntity<java.lang.Object>....
...
...
這將向客戶端顯示控制器名稱和代碼行。我怎樣才能直接回傳一些物件給客戶端,就像這樣,
{<
"message": "required request body is missing"
}
謝謝你的幫助。
uj5u.com熱心網友回復:
你正在尋找的是一個自定義的例外處理程式的實作。你需要在你的自定義例外處理程式中覆寫以下方法。
這段代碼看起來有點像這樣:
public class CustomRestExceptionHandler extends ResponseEntityExceptionHandler {
protected ResponseEntity<Object> handleHttpMessageNotReadable(HttpMessageNotReadableException ex,
HttpHeaders頭資訊。
HttpStatus狀態。
WebRequest請求) {
final MyMessageDto myExMsgDTO = new MyMessageDto("required request body is missing") 。
return new ResponseEntity(myExMsgDTO, headers, status)。
}
在這里,你的MyMessageDto類可以是一個簡單的POJO,像這樣:
public class MyMessageDto {
private String message;
public MyMessageDto(String message) {
super()。
this.message = message;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
你可以在上面提到的DTO類中添加更多的變數,以便在出現例外時提供更多的細節。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/307778.html
標籤:
