No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Códigos de estado o HTTP response status codes

13/27
Recursos

¿Qué son y para qué sirven los status codes en REST?

Los status codes en REST son una parte esencial de la comunicación entre clientes y servidores. Estos códigos numéricos nos indican el estado de una solicitud HTTP. Al observar un status code, podemos saber si una operación fue exitosa, hubo errores o se necesita tomar alguna acción adicional.

Estos códigos se dividen en rangos numéricos que identifican diferentes tipos de respuestas:

  • 100 a 199: Respuestas informativas.
  • 200 a 299: Indican que la operación fue exitosa. Por ejemplo, el código 200 se utiliza para confirmar que todo salió bien, mientras que el 201 indica que un recurso se creó exitosamente.
  • 300 a 399: Redirecciones.
  • 400 a 499: Errores del cliente, como el famoso 404, que indica que un recurso no fue encontrado.
  • 500 a 599: Errores del servidor, como el 500, que denota que algo falló internamente en el servidor.

¿Cómo implementar status codes en el código?

Implementar los status codes correctamente no solo ayuda a mantener la integridad de las aplicaciones REST, sino que también mejora la experiencia del cliente. En el siguiente ejemplo, aprenderás cómo puedes implementar diferentes status codes en tu aplicación.

Cambiando el código para responder con el status 201

Cuando en una API REST se realizan operaciones de creación, es adecuado utilizar el status code 201. Este código confirma a los clientes que el recurso se creó exitosamente.

// Enviamos status 201 en caso de creación exitosa
app.post('/create', (req, res) => {
  // Lógica para crear el recurso
  res.status(201).json({ message: 'Recurso creado exitosamente' });
});

Gestión dinámica de errores con el status 404

En situaciones donde un recurso no puede ser encontrado, se debe informar al cliente enviando un status code 404. Este es un ejemplo de cómo manejarlo dinámicamente:

// Verificar si el ID es 999 y retornar 404
app.get('/product/:id', (req, res) => {
  const productId = req.params.id;

  if (productId === '999') {
    // Envía un 404 not found
    res.status(404).json({ error: 'Producto no encontrado' });
  } else {
    // Manejamos la respuesta normal con un 200
    res.status(200).json({ id: productId, name: 'Nombre de producto' });
  }
});

¿Cómo afectan los status codes a las solicitudes GET?

Cuando manejas solicitudes GET, es fundamental recordar que los parámetros recibidos siempre serán procesados como strings, sin importar si son números. Esto podría influir en la lógica de tu aplicación y en cómo implementas las comprobaciones de status codes.

Ahora que has aprendido a utilizar e implementar status codes, puedes explorar recursos como la documentación de Mozilla Developer Network (MDN) o la curiosa página de los gatos que ilustra los status codes de manera divertida con imágenes felinas. Estas herramientas te ayudarán a elegir el status code apropiado para cada situación.

Déjame en los comentarios cuáles de estos status codes no conocías y cómo piensas aplicarlos en tu proyecto. ¡Continúa explorando el fascinante mundo de las APIs REST!

Aportes 39

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Yo prefiero httpstatusdogs

No sabía que existía el 418 y al parecer es una broma del día de los inocentes

Listo para la impresión 🖨️:

![](

Pueden instalar una extensión en Chrome llamada Redirect Path si quisieran ver el status de la página en la que están navegando.

Al ser una lista bastante larga de status codes puede que para algunos se nos facilite usar algun paquete como http-status-code

Los usamos de forma declarativa sin necesidad de recordar el codigo para cada caso de uso:

const httpStatusCodes = require('http-status-codes');
const { StatusCodes } = httpStatusCodes;

router.get('/:productId', (req, res) => {
  const { productId } = req.params;
  if (parseInt(productId) === 999) {
    res.status(StatusCodes.NOT_FOUND).json({
      message: 'Product doesnt exist'
    });
  } else {
    res.status(StatusCodes.OK).json(productId);
  }
});

router.patch('/:productId', (req, res) => {
  const body = req.body;
  const { productId } = req.params;

  res.status(StatusCodes.PARTIAL_CONTENT).json({
    message: 'Product updated partially',
    data: body,
    productId
  })
});

Este curso es bien bueno, entendible, tenía dudas de cursos anteriores y ahora todo me ha quedado claro.

También se puede validar de esta forma.

😂 204 No content

Tabla con todos los codigos de estado.

Todos los parámetros que se reciban por el método get o de tipo query se envían como string

Este curso me cambió la vida

Jajajaja necesito eso gatos pero en sticker

Para enviar un status de manera dinamica podemos hacerlo de la siguiente manera:

if (id == "13") {
	res.statusCode = 223;
}

y con la propiedad statusCode no hace falta llamar al metodo status

LOL

JAJAJA


Mi ejemplo de delete con manejo de estados

También puedes ver la de los perros 🐶 esta Genial…

Esa página de status con gatos es lo maximo jajajaja

Un código de estado es una parte de la respuesta devuelta por el servidor cuando un cliente (por ejemplo, un navegador) llama a una URL. Con la ayuda de un código de estado, el servidor indica al cliente si la solicitud se ha procesado correctamente o si se ha producido un error.

FUENTE:
https://es.ryte.com/wiki/Códigos_de_Estado_Http

Ok, pero si estamos usando una api, ¿Cómo manejamos el estatus?, porque la api me puede mandar un estatus y yo en mi codigo tengo otro
Buen curso pero siento que no se esta explicado nada
Links: * <https://http.cat/> * <https://developer.mozilla.org/en-US/docs/Web/HTTP/Status>
![](https://http.cat/status/400)![](https://http.cat/status/400)Cuando le pido que vuelva conmigo:![](https://static.platzi.com/media/user_upload/image-e53fc8fe-497f-4cda-a9b5-146d07bde95c.jpg)![]()

???

Pienso que el else esta demás

@platzi, @nicobyte la clase de status code, no carga después de los primeros 3 min, ya realice un test de mi internet y cambie a su servidor B, y el error persiste.

Sin duda para mí el mejor es el error 418: Soy una tetera. Una broma del día de los inocentes que sin duda tuvo que ser para el recuerdo.

Status Codes

Es un estándar que utilizan los servidores para dar información del estado de las peticiones a los clientes que se conectan
.
https://www.webfx.com/web-development/glossary/http-status-codes/

router.get('/:id', (req, res) => {
  const {id} = req.params;
  if (id === '999') {
    res.status(404).json({
      message: 'Not found'
    });
  } else {
    res.status(200).json({
      id,
      name: 'Producto 2',
      precio: 200
    });
  }
});

//POST
router.post('/', (req, res) => {
  const body = req.body;
  res.status(201).json({
    message: 'Created',
    data: body
  });

Excelente clase, gracias

Excelente clase

12 Clases de este curso realizadas y hasta el momento muy buenas explicaciones en cada clase y muy interesante ir conociendo los status codes

¿si te llegas a aprender toda la lista de gatos?