Нужно предложение или лучший дизайн для обработки ошибок для API весенней загрузки - microservice - PullRequest
1 голос
/ 20 октября 2019

Я настраиваю новый API microservice для подключения и получения информации от стороннего REST API. Это API больше похоже на внутренний для наших сервисов, так что другие API могут использовать этот. > (вызовы) -> Реализация сервиса -> (вызовы) -> оставшийся сторонний API

Обработка ошибок, как показано ниже, при возникновении любой проблемы / исключения я заполняю все ErrorDetailsObj в исключении handler(@ControllerAdvice) и возвращаюобертка объекта ответа к потребляющим службам.

public class ErrorObject {
    private String code;
    private String message; //(i choose message from error.prop based on the code)
}


public class ErrorDetailsObj {
    private HttpStatus httpStatus;
    private LocalDateTime timestamp;
    private String message;
    private List<ErrorObject> errors;
}
  1. Я правильно проектирую? Или есть ли лучший способ упростить обработку ошибок?
  2. Нужно ли отправлять только код ошибки, чтобы службы-потребители могли выбрать правильное сообщение об ошибке и отобразить его? в моем случае это моя собственная внутренняя служба, которая подключается к сторонней службе.
  3. Какой лучший пример для обработки ошибок?

Ответы [ 2 ]

0 голосов
/ 21 октября 2019

Я не вижу проблем с вашим подходом. и так как вы упомянули, что он работает нормально, вы уже определили все необходимые классы пользовательских классов исключений. и на ваш вопрос: «возможно, предоставьте только код ошибки, чтобы потребляющие сервисы могли использовать сообщения об ошибках в своих сервисах». - вам нужно заполнить сообщение об ошибке там, где вы видите исключение (источник).

Я могу предложить одно небольшое изменение, вы можете извлечь httpStatus из ErrorDetailsObj. возвращая объект ResponseEntity, вы можете HttpStatus в конструктор ResponseEntity. например: return ResponseEntity (errorDetailsObj, HttpStatus. <>);

Надеюсь, это поможет.

0 голосов
/ 21 октября 2019

Я не уверен, но вы должны отправить правильный http-код и ваше сообщение. Также вы можете посмотреть на обработчик исключений пружины по умолчанию ResponseEntityExceptionHandler.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...