Luis Elicané Tiu Paz
En NodeJS se puede usar express validator
Angel Aponte
Otras alternativas son: * [class validator](https://www.npmjs.com/package/class-validator) * [joi](https://www.npmjs.com/package/joi)
¿Qué pasos previos se deben considerar antes de actualizar o guardar información en la base de datos?
Antes de actualizar o guardar información en nuestra base de datos, es esencial validar los datos que estamos procesando. La validación es un tema crucial que actúa como una capa de seguridad adicional para proteger la integridad de nuestra base de datos. Este proceso se debe realizar en el lado del servidor, garantizando así que cualquier aplicación o usuario que quiera interactuar con nuestros datos proporcione información completa y correcta.
¿Cómo implementar validaciones en PHP?
Para implementar validaciones en PHP, especialmente en el contexto de una aplicación utilizando Laravel, podemos seguir estos pasos:
categoría es obligatoria.usuario es obligatorio.título, descripción, ingredientes, instrucción, e imagen también deben estar presentes.$request->validate([ 'categoria' => 'required', 'usuario' => 'required', 'titulo' => 'required', 'descripcion' => 'required', 'ingredientes' => 'required', 'instruccion' => 'required', 'imagen' => 'required' ]);
php artisan make:request NombreDeLaClaseRequest
Dentro de este archivo, definimos las reglas de validación, haciendo que nuestro código sea más limpio y fácil de mantener.
use App\Http\Requests\NombreDeLaClaseRequest; public function store(NombreDeLaClaseRequest $request) { // lógica de almacenamiento }
¿Cuáles son las mejores prácticas para manejar errores de validación y evitar mensajes HTML en un API?
Cuando estamos trabajando con APIs, queremos que nuestras respuestas sean en formato JSON en vez de HTML, especialmente en caso de errores:
Asegurar el uso correcto de los headers: Cuando enviamos solicitudes a nuestra API, es importante especificar el header application/json para obtener respuestas correctas y evitar HTML.
Desactivar mensajes de depuración para el usuario: En producción, no queremos mostrar mensajes extensos y técnicos. Podemos configurar el archivo .env para cambiar la opción APP_DEBUG a false, garantizando que los usuarios reciban mensajes de error más amigables.
Implementar respuestas adecuadas para acciones no exitosas: Cuando un recurso no se encuentra (por ejemplo, intentamos eliminar un elemento inexistente), debemos asegurarnos de devolver un mensaje claro, como un 404, en lugar de una página de error en HTML.
return response()->json(['message' => 'Recurso no encontrado'], 404);
¿Qué otros tipos de reglas de validación existen en Laravel?
En Laravel, hay diversas reglas de validación que podemos aplicar para personalizar aún más nuestro sistema:
Cada proyecto puede tener requisitos únicos, y conocer las opciones disponibles nos permite desarrollar sistemas de validación robustos. Podríamos consultar la documentación oficial de Laravel para un listado completo de reglas de validación:
https://laravel.com/docs/10.x/validation#available-validation-rules
Implementar validaciones no solo protege nuestros datos, sino que también mejora la experiencia del usuario al proporcionar retroalimentación inmediata sobre errores en la entrada de información. Así, garantizamos que el sistema sea más seguro y eficiente.
Luis Elicané Tiu Paz
En NodeJS se puede usar express validator
Angel Aponte
Otras alternativas son: * [class validator](https://www.npmjs.com/package/class-validator) * [joi](https://www.npmjs.com/package/joi)
Luis Boivar
Esto en java, se puede hacer con interceptor, o en el mismo método como lo está haciendo el profesor.
Josue David
No se si esto lo corrija en la siguiente clase, pero dejo el $tag de manera indefinida. No deberia de funcionar y aqui solo mostro que la validacion funciono, pero no en el caso de que si llegase la data correctamente.
Eliyonai Andres Molero Pimentel
Es posible reutizar validaciones de otro Request?
Por ejemplo, supongamos que tengo 2 Requests A y B.
En el A valido cateogry_id, user_id, y otros
En el Request B tambien tengo category_id y user_id, y adicionalmente tengo otros.
Es posible que desde el Request B yo reutilice el metodo del Request A para validar los campos en comun?
Kenneth Angulo L
Buenas companero, me costo un poco entender la pregunta, pero creo que capto cual es el punto.
Lo que puedes hacer es generar tus propias reglas y aplicarlas campo por campo, asi no repites el codigo de la validacion, envio ejemplo:
Kenneth Angulo L
perdon, se me fue sin el ejemplo:
(aqui genere un regla llamada Cellphonemax, que se la puedo aplicar al campo phone2 tambien)
'phone1' => [ 'bail', 'required', new Cellphonemax, new Cellphonemin, Rule::unique('contacts')->ignore($this->client->contact->id), ],
Giovanny Herrera garcia
Saludos, como se podría implementar la transformación de datos para abstraer la información de la base datos y así mismo usar los resources y collections?
Gilberto Pérez Garrido
Tema muy interesante para abstraer lineas de código para un mejor mantenimiento
Iván González Mendoza
En .NET he tenido la oportunidad de usar FluentValidation, una biblioteca muy buena para realizar validaciones.