Как показать сообщение об исключении в почтальоне? - PullRequest
0 голосов
/ 30 апреля 2019

Я получаю список продуктов из БД, используя REST Webservice. Вызов и проверка, являются ли продукты НЕДЕЙСТВИТЕЛЬНЫМИ или НЕТ.

ЕСЛИ нет продуктов, для которых нужно выдать исключение в POSTMAN.

Может кто-нибудь пролить свет на то, как показывать сообщения об исключениях в почтальоне?

Код:

public class ABC extends BusinessException
{
    public ABC(final String message)
    {
        super(message);
    }

    public ABC(final String message, final Throwable cause)
    {
        super(message, cause);
    }
}

1 Ответ

0 голосов
/ 30 апреля 2019

вы можете напрямую использовать WebApplicationException из jax-rs для выдачи исключения

Например:

if(products==null){
 throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND).entity("products does not exist.").build());
}

Если у вас есть пользовательское исключение, вы можете расширитьWebApplicationException

public class BusinessException extends WebApplicationException {
     public BusinessException(Response.Status status, String message) {
         super(Response.status(status)
             .entity(message).type(MediaType.TEXT_PLAIN).build());
     }
}

выбросить из вашего кода

 if(products==null){
      throw new BusinessException(Response.Status.NOT_FOUND,"products does not exist.");
 }

вы можете использовать объект ответа на ошибку, чтобы отобразить чистый способ

public class ErrorResponse {
  private int status;
  private String message;
  ErrorResponse(int status,String message){
     this.status = status;
     this.message = message;
  }
//setters and getters here
}

создать объект ErrorResponse при создании исключения

public class BusinessException extends WebApplicationException {
     public BusinessException(Response.Status status, String message) {
         super(Response.status(status)
             .entity(new ErrorResponse(status.getStatusCode(),message)).type(MediaType.APPLICATION_JSON).build());
     }
}

В почтальоне он будет отображаться как ниже

{
  status:404,
  message:"products does not exist."
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...