Zero system предоставляет нормализованный способ создания WebException
Future. Вы можете использовать API из текущего руководства для обработки ответа. Определение API должно быть следующим:
static <T, R> Future<R> thenError(
final Future<Boolean> условие,
final Supplier<Future<T>> trueFuture,
final Function<T, R> trueFun,
final Class<? extends WebException> clazz,
final Object... args)
static Future<JsonObject> thenError(
final Future<Boolean> condition,
final Supplier<Future<JsonObject>> trueFuture,
final Class<? extends WebException> clazz,
final Object... args)
static <T> Future<T> thenError(
final Class<? extends WebException> clazz,
final Object... args)
Исходный код взят из видеоприложения.
public Function<SecUser, Future<JsonObject>> response(
final String username,
final String password,
final Function<SecUser, Future<JsonObject>> future) {
return pojo -> {
if (null == pojo) {
// Пользователь не существует
this.logger.info("[ Auth ] username/id = {0} does not exist.", username);
return Ux.thenError(UserNotFoundException.class, this.clazz, username);
} else if (!password.equals(pojo.getSPassword())) {
// Пароль неправильный
this.logger.info("[ Auth ] username/id = {0}, password is wrong {1}.", username, password);
return Ux.thenError(PasswordWrongException.class, this.clazz, username);
} else {
// Продолжаем, потому что успешно
this.logger.info("[ Auth ] User ( username/id = {0} ) login successfully.", username);
return future.apply(pojo);
}
};
}
Вышеупомянутая функция выполняет следующие задачи:
SecUser
pojo равен нулю, клиент получает ответ UserNotFoundException
Future.PasswordWrongException
Future.Помимо прямого создания стандартного WebException
Future, как показано в примере, есть ещё два других API для создания условного
ошибочного Future на основе аргументов. Вам следует знать следующий рабочий процесс:
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )