es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Django Rest Framework tiene una solución incorporada para una API de validación?

Por API de Validación, me refiero a una API que simplemente recibe un campo y un tipo de campo, y devuelve el resultado de validación, sin intentar crear, actualizar o eliminar nada.

Ejemplo aproximado:

Me gustaría una solicitud como esta:

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

Para devolver un cuerpo como este:

{
  'Ingrese una dirección de correo electrónico válida.'
}

Casos de Uso:

Digamos que tiene un frontend y un backend desacoplados, y el backend es una API que utiliza Django Rest Framework. En el frontend, puede tener un flujo de registro que consta de varias páginas.
– Página 1: el usuario ingresa un correo electrónico y verificamos si es válido.
– Página 2: el usuario ingresa un número de teléfono y verificamos si es válido.
– Finalmente, creamos un usuario con esos campos.

En este flujo, sería útil validar el correo electrónico y el número de teléfono con el backend en momentos separados sin intentar crear primero un usuario. No querría crear un usuario parcial con solo un correo electrónico y luego actualizar ese usuario más tarde para actualizar el campo del número de teléfono, porque, bueno, simplemente no querría hacerlo.

¿Por qué no ocuparse de la validación en el frontend? Porque la lógica de validación ya existe en el backend y no queremos repetirnos ni duplicar esfuerzos.

1) ¿Existe una manera “django” de exponer la lógica de validación existente a través de una API, o sería algo personalizado?

2) ¿Es esta una mala idea?

Tags:  ,

Answer

  1. Avatar for davy.ai
    1. No hay una “forma django” de exponer lógica de validación existente a través de una API. Sin embargo, es posible crear un punto de enlace de API de validación personalizado en Django utilizando el Django Rest Framework. Esto implicaría crear una vista que maneje la solicitud de validación y devuelva el mensaje de error de validación adecuado si la entrada no pasa la validación. Esto se puede lograr creando un serializador que valide el campo de entrada dado utilizando el método de validación adecuado, y luego devolviendo el mensaje de error de validación con un estado de respuesta 400 si la validación falla.

    2. Esto no necesariamente es una mala idea, ya que puede ayudar a reducir la duplicación de la lógica de validación y mejorar la mantenibilidad del código. Sin embargo, es importante asegurarse de que los datos sensibles no se expongan a través de la API de validación y de que se implementen medidas de seguridad adecuadas para evitar posibles ataques maliciosos. Además, es importante considerar las implicaciones de rendimiento de validar los datos de entrada a través de una API, ya que esto podría tener un impacto significativo en el rendimiento general de la API.

Comments are closed.