Запрос подресурса Spring-rest на отсутствующего родителя - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть объект Пользователь и объект Пост с отношением Один пользователь к множеству сообщений .Чтобы получить пользовательский ресурс, я делаю GET запрос к этой конечной точке в UserController :

http://localhost:8080/users/{userId}

Если запрошенный userId не соответствует пользователю в MySQL, я выбрасываюисключение с ошибкой 404 User not found через класс UserService (код ниже).

public User getUser(Integer id) throws ResourceNotFoundException{
    return userRepository.findById(id).map(user -> {
        return user;
    }).orElseThrow(() -> new ResourceNotFoundException("User with the ID " + id + " is not available"));
}

Теперь, чтобы получить ресурс Post , я использую этоконечная точка на PostController :

http://localhost:8080/users/{userId}/posts/{postId}

Мой вопрос : Что делать, если я запрашиваю сообщение (что бы это ни было) для несуществующего пользователя?Является ли лучшая логика для выдачи ошибки 404 User not found или сообщение не найдено?Если так, как я могу объединить UserService getUser(id) и PostService getPost(id), чтобы выдать ошибку?

1 Ответ

0 голосов
/ 20 ноября 2018

На самом деле это зависит от того, как вы отображаете отношения между пользователем и публикацией.

Если это двунаправленное отношение и каскадный тип - ВСЕ, то при удалении пользователя все сообщения, созданные пользователем, также будут удалены.

Таким образом, если выше описанный случай, вы просто проверяете пользователя в БД, если он не найден, а затем показывает, что пользователь не найден.

Также вы должны выполнить рекомендуемый подход для удаления пользователя, используя мягкое удаление

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