> Что происходит, если по userId пользователь не найден? (Java)
Уровень: senior · Роль: backend · Язык: Java · Категория: Технические вопросы
Компании: Северсталь
Стек: Java
> Пример ответа
Если пользователь не найден по userId, в зависимости от контекста API, возможны два основных подхода:
-
Возврат HTTP 404 (Not Found) - наиболее распространенный и REST-сообразный вариант. В контроллере выбрасывается исключение, например
EntityNotFoundException, которое обрабатывается глобальным обработчиком (@ControllerAdvice) и возвращает клиенту JSON с сообщением об ошибке и статусом 404. -
Возврат пустого результата - если метод сервиса возвращает
Optional<User>, то при отсутствии пользователя можно вернутьnullили пустойOptional, а в контроллере - статус 204 (No Content) или пустое тело ответа. Этот подход менее информативен и используется реже, обычно в batch-операциях.
Пример реализации с 404:
JAVA@GetMapping("/users/{id}")public ResponseEntity<User> getUser(@PathVariable Long id) {return userRepository.findById(id).map(ResponseEntity::ok).orElseThrow(() -> new EntityNotFoundException("User not found with id: " + id));}
Глобальный обработчик:
JAVA@ExceptionHandler(EntityNotFoundException.class)public ResponseEntity<ErrorResponse> handleNotFound(EntityNotFoundException ex) {return ResponseEntity.status(HttpStatus.NOT_FOUND).body(new ErrorResponse(ex.getMessage()));}
Такой подход четко сигнализирует клиенту об ошибке и соответствует принципам REST.
> Похожие задачи по Java
Как посчитать количество значений в типе int
Работал ли ты с Cassandra, MongoDB, Redis, ElasticSearch, ClickHouse
Какой максимальный размер строки на входе и нужно ли его обрабатывать
> Похожие задачи по backend
Как реализовать TTL кэш на Redis без использования таблиц
Как масштабировать сервис коротких ссылок и настроить балансировку нагрузки
Работал ли ты с Cassandra, MongoDB, Redis, ElasticSearch, ClickHouse
Что такое starvation локальной очереди и когда она возникает
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью