do i need to return DTO from my controller when handling errors?

hey guys. i want to ask for some help. in my service i do some checks and throw custom exceptions which later i handle in RestResponseEntityExceptionHandler. it looks like this:
@ControllerAdvice
@Slf4j
public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(value={NoCustomerException.class})
protected ResponseEntity<Object> handleNoCustomerException(NoCustomerException noCustomerException, WebRequest webRequest) {
String responseBody = noCustomerException.getMessage();
return handleExceptionInternal(noCustomerException, responseBody,new HttpHeaders(), HttpStatus.BAD_REQUEST, webRequest);
}
@ExceptionHandler(value={NoEarlierPaymentException.class})
protected ResponseEntity<Object> handleNoEarlierPaymentException(NoEarlierPaymentException noEarlierPaymentException, WebRequest webRequest) {
String responseBody = noEarlierPaymentException.getMessage();
return handleExceptionInternal(noEarlierPaymentException, responseBody,new HttpHeaders(), HttpStatus.BAD_REQUEST, webRequest);
}
}
@ControllerAdvice
@Slf4j
public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(value={NoCustomerException.class})
protected ResponseEntity<Object> handleNoCustomerException(NoCustomerException noCustomerException, WebRequest webRequest) {
String responseBody = noCustomerException.getMessage();
return handleExceptionInternal(noCustomerException, responseBody,new HttpHeaders(), HttpStatus.BAD_REQUEST, webRequest);
}
@ExceptionHandler(value={NoEarlierPaymentException.class})
protected ResponseEntity<Object> handleNoEarlierPaymentException(NoEarlierPaymentException noEarlierPaymentException, WebRequest webRequest) {
String responseBody = noEarlierPaymentException.getMessage();
return handleExceptionInternal(noEarlierPaymentException, responseBody,new HttpHeaders(), HttpStatus.BAD_REQUEST, webRequest);
}
}
currently i return only error message string. but i need to return this type of array:
Name Type Length Description
code Integer 10 13001
Message* String 200 Invalid signature
Name Type Length Description
code Integer 10 13001
Message* String 200 Invalid signature
which in response looks like this:
[{"code":13001,"message":"Invalid signature"}]
[{"code":13001,"message":"Invalid signature"}]
so i was wondering, since im given fields' types and lengths, should i have a DTO/object which id return? how to aproach it? thanks
1 Reply
JavaBot
JavaBot5mo ago
This post has been reserved for your question.
Hey @bambyzas! Please use /close or the Close Post button above when your problem is solved. Please remember to follow the help guidelines. This post will be automatically closed after 300 minutes of inactivity.
TIP: Narrow down your issue to simple and precise questions to maximize the chance that others will reply in here. 💤 Post marked as dormant
This post has been inactive for over 300 minutes, thus, it has been archived. If your question was not answered yet, feel free to re-open this post or create a new one. In case your post is not getting any attention, you can try to use /help ping. Warning: abusing this will result in moderative actions taken against you.
Want results from more Discord servers?
Add your server