Есть ли в Django Rest Framework встроенное решение для API валидации?

Под API проверки я подразумеваю API, который просто принимает поле и тип поля, и возвращает результат проверки, не пытаясь ничего создавать, обновлять или удалять.

Грубый пример

Я бы хотел получить такой запрос

curl -X POST /api/validation
   -H 'Content-Type: application/json'
   -d '{"type":"email","value":"invalid.email@@com"}'

Чтобы вернуть тело, например, так:

{
  'Enter a valid email address.'
}

Use Case

Допустим, у вас есть разделенные фронтенд и бэкенд, причем бэкенд - это API, использующий Django Rest Framework. Во фронтенде у вас может быть поток регистрации, состоящий из нескольких страниц.

  • Страница 1: пользователь вводит email, и мы проверяем, действителен ли он
  • Страница 2: пользователь вводит номер телефона, и мы проверяем, действителен ли он
  • .
  • Наконец, создаем пользователя с этими полями

В этом потоке было бы полезно подтверждать email и номер телефона в бэкенде в разное время, не пытаясь сначала создать пользователя. Вы не захотите создавать частичного пользователя только с электронной почтой, а затем позже изменять этого пользователя для обновления поля номера телефона, потому что --- ну, потому что вы просто не захотите этого делать.

Почему бы не позаботиться о валидации во фронтенде? Потому что логика валидации уже существует в бэкенде, и мы не хотим повторяться или дублировать усилия.

1) Существует ли "django way" для раскрытия существующей логики валидации через API, или это должно быть сделано на заказ?

2) Плохая ли это идея?

Вернуться на верх