Есть ли в 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 и номер телефона в бэкенде в разное время, не пытаясь сначала создать пользователя. Вы не захотите создавать частичного пользователя только с электронной почтой, а затем позже изменять этого пользователя для обновления поля номера телефона, потому что --- ну, потому что вы просто не захотите этого делать.
Почему бы не позаботиться о валидации во фронтенде? Потому что логика валидации уже существует в бэкенде, и мы не хотим повторяться или дублировать усилия.