@Eggziom

Как организовать валидацию данных в API?

Пишу пет-проджект, есть вопрос по апи (оно на ноде-экспресс, но не суть, наверное) - а точнее, по валидации.
Запрос проходит через ряд мидлвейров:
router.delete(
    "/:id",
    middlewares.isAuthed,
    schemaValidation.deletePost, // проверяю поступающие данные
    dataValidation.deletePost, // проверяю, согласуются ли поступающие данные с записями в БД
    controllers.deletePost // передаю данные в метод соотв. сервиса
);

Так вот, есть, скажем, запрос - удалить пост по id. На этапе dataValidation я обращаюсь к БД и смотрю, есть ли вообще такой пост. Если поста нет, сразу отдаю 404. Иначе запрос идет дальше, и потом сервис снова обращается к БД - на этот раз, чтобы уже таки удалить запись. Выглядит так, будто на этапе валидации выполняется лишнее действие. Оно, конечно, ищет по primary key, но тем не менее.
Как следует поступать в подобных случаях? Может, вообще убрать проверку на существование поста из такого роута? Типа, метод удоления сам отдат null/false, и контроллер пусть интерпретирует это как 404?
  • Вопрос задан
  • 73 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы