Solución de CORS y Desarrollo de API REST con Express
El desarrollo de API REST con Express es una parte fundamental en la creación de aplicaciones web modernas. Sin embargo, suele presentar desafíos al momento de manejar las solicitudes de recursos desde diferentes dominios debido a la política de Same-origin del navegador. Este problema se conoce como CORS (Cross-Origin Resource Sharing) y es necesario implementar una solución para permitir el acceso a los recursos de la API desde distintos dominios.
¿Qué es CORS?
CORS es un mecanismo de seguridad que impone restricciones en las solicitudes de recursos entre diferentes dominios. Esto significa que, por defecto, un navegador no permitirá que una página web haga una solicitud a un servidor en un dominio distinto al de la página web, a menos que haya sido autorizado explícitamente.
Solución de CORS con Express
Express, el popular framework de aplicaciones web para Node.js, ofrece una solución sencilla para manejar el CORS en las API REST. Esto se logra mediante el uso del middleware cors
, el cual permite configurar las opciones de acceso a los recursos desde diferentes dominios.
const express = require('express');
const cors = require('cors');
const app = express();
// Habilitar CORS para todas las solicitudes
app.use(cors());
// Configurar las opciones de CORS
app.use(cors({
origin: 'http://miaplicacion.com',
optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) choke on 204
}));
// Resto de la configuración de la API REST con Express
Desarrollo de API REST con Express
Una vez que se ha implementado la solución de CORS, es posible desarrollar la API REST con Express de manera sencilla. Mediante la definición de rutas y middleware, es posible manejar las solicitudes de los clientes y retornar las respuestas adecuadas con datos en formato JSON, cumpliendo con los principios RESTful.
En resumen, la combinación de la solución de CORS con el desarrollo de API REST con Express permite crear aplicaciones web modernas y escalables, garantizando el acceso a los recursos de la API desde diferentes dominios de manera segura y controlada.
Deberes/Tarea/Actividad:
* Hacer por paginación 27:12
Hola a todos los devs, una pregunta pls, qué hace exactamente esta verificación? (parte de PATCH)
app.patch('/movies/:id', (req, res) => {
const result = validatePartialMovie(req.body)
if(!result.success){
return res.status(404).json({ error: JSON.parse(result.error.message)}) // <<<<—– por qué debo hacer esto?
}
.
.
.
}
Me encantan tus videos, los veo como una película, estoy aprendiendo, y es emocionante, como cuando aprendí a programar por primera vez y cada cosa era nueva y me abría las oportunidades, así me siento aprendiendo viendo tus videos, es como que todo es una masa gris de cero conocimiento y no sé ni siquiera cómo buscar tutoriales de lo que quiero hacer porque no sé cómo funciona por detras, pero ver tus videos es como apuntar una potente linterna a la oscuridad y tener claro el camino.
genial clase de node y de cors! mejor entendido que nunca! 😀 como siempre… muchas gracias por enseñarnos y por ser como eres que hace que aprendamos con una sonrisa en la boca 🙂
Soy desarrollador de hace 3 años. A pesar de tener experiencia tus explicaciones y dedicación es alimento para refrescar y alimentar mis conocimientos. Te admiro y te agradezco por tu esfuerzo!
Te amo midu muchas gracias!
Hola Miguel, antes de nada, agradecerte el contenido que generas, me parece muy bueno y enseñas muy bien. No he terminado de ver aún el vídeo, por si acaso lo comento, para que no se me olvide… Existe el método en ZOD de nativeEnum que directamente le pasas el enum. Lo tengo que probar aún si funciona bien y tal, pero existir existe…. Salu2!
horrible
Por que no tengo el error CORS?
q hambre me da cuando dice 'se lo come con patatas' xdd
El POST me agrega solamente el id y el rate, pero no me agrega las otras propiedades de la request y me dice que son undefined, escribi todo igual que en el video.
donde esta la opcion de unirme al canal?
que chulada zod, no lo conocia, que crack midu gracias por el video
Me esta ayudando mucho gracias. solo der repente sentí que dio un acceleron a cosas que no sabia pero así se aprender.
que bárbaro la mejor explicación de rest y cors muhcas gracias!!!!
Increible tu aporte como siempre Midu! . Consulta por si alguien sabe, es igual importar randomUUID de esta manera? const { randomUUID } = require('crypto') ?
Aún no veo todo el video, que está muy bueno y bien explicado como siempre, pero quería hacer una corrección: la pronunciación de middleware podría ser midelwer o midlwer, pero nunca MAIdelwer. Con cariño💙
Clave la explicación de CORS! Haces que todo parezca facil!!!
gracias Midu 🧡
tuttodev también entraría al controlador