Обработка ошибок для RESTull services - (JAX-RS)

 
 
 
Сообщения:53
Можете ли привести пример обработки ошибок на стороне сервера и на стороне клиент

На стороне клиента, я обрабатываю code status , обработанного ответа (Response)
Но для разработчика frontend , сообщения хочу сделать более информативное, но оно не должно быть видно пользователю, так как валидация и сообщения на стороне frontend , для пользователя, будут формироваться с помощью jquery.

Пока я лишь ограничился обработкой code status , но как добавить информативности?
Например, выброс исключений на стороне сервера (которые не останавливают работу API) + формированиe frontend + формирования сообщения для frontend - части

Пока у меня вот так:

/*Кнопка для аутентификации,
* isAuthentication(email, password) - вызов функции, которая
 * отправляет ajax-запрос на аутентификацию*/
$(function () {

    $(".enterBtn").click(function () {
        var email = $(".emailInput").val();
        var password = $(".passwordInput").val();
        isAuthentication(email, password);
    });

});

/* формирование ajax-запроса, на проверку аутентификации*/
function isAuthentication(email, password) {
   $.ajax({
        url: 'api/employees/auth/signin/' + email + '/' + password,
        method: 'get',
        success: function () {

            successAuth();

         },
        error: function (data) {

            handlingErrStatusQueryAuth(data);
        }
    });


}


var notAccess = "Доступ запрещен!";
var notAccessEn = "Access denied!"

var successAuth = function () {
    $(".authentication").html("OK").css("color","red");

}

/*обработка запроса на аутентификацию*/
var handlingErrStatusQueryAuth = function (data) {

    if (data.status === 401) {

        $(".authentication").html("");
       // $(".authentication").css('color', red);
        $(".authentication").html(notAccess).css("color", "red");

    }
}



/**
     * Проверка аутентификации пользователя
     * @param email
     * @param password
     */
    @GET
    @Path( "/auth/signin/{email}/{password}" )
    public Response isValidUser(@PathParam( "email" ) String email,
                                @PathParam( "password" ) String password) {

        EmployeeDao dao = new EmployeeDaoImpl();

        Employee employee = dao.loadEmployeeByFieldStr("email", email);

        String passwordTarget = employee.getPassword();

        if (employee != null && password.equals(passwordTarget)) {
            Response.ResponseBuilder status = Response.ok();
            Response response = status.build();

            return response;
        } else {
            Response.ResponseBuilder status = Response.status(401);
            Response response = status.build();

            return response;
        }
    }
 
 
Сообщения:53
https://codahale.com/what-makes-jersey-interesting-parameter-classes/
http://code.i-harness.com/ru/q/8e925
 
Модераторы:wedens
Сейчас эту тему просматривают:Нет