Una API REST (Representational State Transfer), a veces denominada RESTful AP, es una API que utiliza solicitudes HTTP para acceder y utilizar recursos.

Estos recursos a menudo se representan en formato JSON, aunque en algunas ocasiones se utilizan formatos XML, de texto y HTML. Las API REST se han convertido en una forma estándar para que las aplicaciones intercambien datos a través de una red a través de métodos HTTP como GET, PUT, POST y DELETE. Facilitan la creación, lectura, actualización y eliminación de recursos comúnmente conocidos como operaciones CRUD.

Esta guía explora cómo puede usar Node. JS para crear una API Restful CRUD simple.

Lo que necesita para seguir

Asegúrese de tener Node.js instalado en su máquina local. Correr nodo -v para comprobar si Node. JS está instalado. Este comando debe devolver el número de versión.

Relacionado: Cómo instalar Node.js en Windows

También debe tener una instancia de trabajo de su favorito editor de texto (por ejemplo, código VS).

Configuración del proyecto

instagram viewer

Cree una carpeta para su aplicación y navegue hasta ella. En la terminal y en el directorio que acaba de crear, inicialice paquete.json mediante la ejecución inicio npm.

$ npm inicio -y 

El paquete.json lo ayudará a instalar y administrar paquetes npm. El -y flag crea el archivo package.json usando las opciones predeterminadas sin tener que configurar los detalles individuales. La salida en su terminal debería verse así. Tenga en cuenta que el nombre será diferente según el nombre que le haya dado a su carpeta.

Configurar el servidor

Para crear un servidor, primero instale Express.js y Nodemon. Express.js es un nodo. Js Framework que fue diseñado para facilitar el desarrollo de aplicaciones web y API. Lo usarás para configurar el servidor y los puntos finales de la API. Nodemon, por otro lado, es una herramienta de desarrollo que reiniciará su servidor cuando cambie el código de su aplicación.

Ejecute el siguiente comando para instalar Rápido y nodemonio:

npm expreso nodemon 

A continuación, para crear su servidor, cree un archivo y llámelo servidor.js luego agregue el siguiente código.

// Requerir expreso
const expreso = require("expreso");
// Inicializar expreso
const aplicación = express();
constante PUERTO = 8080;
// analizar JSON
aplicación.uso (express.json());
// analizar datos codificados de URL
app.use (express.urlencoded({extendida: verdadero}));
// crea un servidor
app.escuchar (PORT, () => {
console.log(`Servidor ejecutándose en el puerto ${PORT}`);
});

En el código anterior, requiere expreso en su servidor.js archivo e inicialícelo. Luego, configure express para analizar datos codificados en URL y JSON. Finalmente, crea un servidor usando el escucha() método de Express.

Relacionado: ¿Qué es Express.js y por qué debería usarlo?

Primeros pasos: cree una matriz para almacenar datos de usuario

Por motivos de simplicidad, no utilizará una base de datos, sino una matriz de usuario simple. En su app.js, agregue el siguiente código después de la línea que analiza los datos codificados de URL.

usuarios constantes = [{
identificación: 1,
nombre: "Jane Doe",
edad: "22",
},
{
identificación: 2,
nombre: "John Doe",
edad: "31",
}];

Relacionado: Cómo crear una base de datos y una colección en MongoDB

Cómo configurar rutas en Express.js

Para realizar operaciones en sus datos, debe configurar el enrutamiento. Las rutas determinarán cómo su aplicación responderá a las solicitudes realizadas a un punto final en particular. Cada ruta tiene un método HTTP, una URL y una función de controlador que maneja la solicitud y la respuesta HTTP. Para configurar las rutas, agregue lo siguiente a su servidor.js archivo después de su usuarios formación.

app.post('/create', (req, res) => {
// Crear un usuario
});
app.get('/usuarios', (requerido, res) => {
// Recupera todos los usuarios
});
app.get('/usuario/:IDusuario', (req, res) => {
// Devuelve un usuario por ID
});
app.put('/usuario/:IDusuario', (req, res) => {
// Actualizar un usuario por ID
});
app.delete('/delete/:userID', (req, res) => {
// Eliminar un usuario por ID
});
app.delete('/usuarios', (req, res) => {
// Eliminar todos los usuarios
});

Cómo realizar operaciones CRUD en Node. js

Debe crear las funciones que manipularán los datos del usuario y devolverán una respuesta de acuerdo con la ruta coincidente. Estas funciones crearán, leerán, actualizarán y eliminarán datos de usuario.

Relacionado: Cómo realizar operaciones CRUD en MongoDB

Cómo crear un nuevo usuario

Para crear un nuevo usuario, deberá:

  • Compruebe si el cuerpo de la solicitud está vacío; si lo está, envíe una respuesta de error.
  • Extrae los datos del usuario del cuerpo de la solicitud.
  • Validar los datos del usuario.
  • Empuje los datos del usuario a la matriz.

Tenga en cuenta que está utilizando una matriz solo por motivos de simplicidad. En un escenario de caso real, estaría interactuando con una base de datos.

Edite su ruta POST como se muestra a continuación.

app.post("/crear", (req, res) => {
// Comprobar si el cuerpo de la solicitud está vacío
if (!Objeto.claves (req.cuerpo).longitud) {
devuelve res.status (400).json({
mensaje: "El cuerpo de la solicitud no puede estar vacío",
});
}
// Usa la desestructuración de objetos para obtener el nombre y la edad
const { nombre, edad } = req.cuerpo;
if (!nombre || !edad) {
res.estado (400).json({
mensaje: "Asegúrese de haber enviado tanto el nombre como la edad",
});
}
const nuevoUsuario = {
id: usuarios.longitud + 1,
nombre,
envejecer,
};
tratar {
usuarios.push (nuevoUsuario);
res.estado (201).json({
mensaje: "Se creó con éxito un nuevo usuario",
});
} atrapar (error) {
res.estado (500).json({
mensaje: "Error al crear usuario",
});
}
});

Cómo leer usuarios

Para recuperar todos los usuarios, devuelva la matriz de usuarios en su respuesta.

app.get("/usuarios", (requerido, res) => {
tratar {
res.estado (200).json({
usuarios
});
} atrapar (error) {
res.estado (500).json({
mensaje: "Error al recuperar todos los usuarios",
});
}
});

Si prueba esta ruta con cartero, debería recibir la matriz de usuarios en el cuerpo de la respuesta.

Para recuperar un solo usuario:

  • Obtenga el ID de usuario del parámetro de URL.
  • Usar encontrar() para identificar qué datos específicos de usuario está solicitando.
  • Devuelve al usuario en la respuesta.
app.get("/usuarios/:IDusuario", (req, res) => {
const id = parseInt (req.params.userID);
consola.log (id);
tratar {
let usuario = usuarios.find((usuario) => usuario.id id);
si (!usuario) {
devuelve res.status (404).json({
mensaje: "Usuario no encontrado",
});
}
res.estado (200).json({
usuario,
});
} atrapar (error) {
res.estado (500).json({
mensaje: "Error al recuperar el usuario",
});
}
});

Cómo actualizar usuarios

Para actualizar el usuario:

  • Recupere el ID de usuario de la URL.
  • Usar encontrar() para comprobar si el usuario existe.
  • Usar índice de() para obtener el índice del usuario al que se hace referencia.
  • Use el índice para editar los datos del usuario con los datos enviados a través del cuerpo de la solicitud.
app.put("/usuarios/:IDusuario", (req, res) => {
tratar {
const id = parseInt (req.params.userID);
let usuario = usuarios.find((usuario) => usuario.id id);
si (!usuario) {
devuelve res.status (404).json({
mensaje: "Usuario no encontrado",
});
}
const userIDX = usuarios.indexOf (usuario);
usuarios[userIDX].name = req.body.name || usuarios[IDX de usuario].nombre;
usuarios[userIDX].age = req.body.age || usuarios[usuarioIDX].edad;
res.estado (200).json({
mensaje: "Usuario actualizado correctamente",
usuario,
});
} atrapar (error) {
res.estado (500).json({
mensaje: "Error al recuperar el usuario",
});
}
});

Cómo eliminar usuarios

Puede optar por eliminar un usuario o todos los usuarios.

Para eliminar un usuario:

  • Recuperar el ID de usuario de la URL
  • Usar encontrar() para comprobar si el usuario existe
  • Usar buscarÍndice() para obtener el índice del usuario al que se hace referencia.
  • Usar empalme() para eliminar el usuario en ese índice.
app.delete("/users/:userID", (req, res) => {
tratar {
const id = req.params.userID;
let userIDX = usuarios.findIndex((usuario) => usuario.id id);
si (!IDXusuario) {
res.estado (404).json({
mensaje: "Usuario no encontrado",
});
}
usuarios.empalme (usuarioIDX, 1);
res.estado (200).json({
mensaje: "Usuario eliminado con éxito",
usuarios,
});
} atrapar (error) {
res.estado (500).json({
mensaje: "No se pudo eliminar el usuario",
});
}
});

Para eliminar todos los usuarios, empalme toda la matriz.

app.delete("/usuarios", (req, res) => {
tratar {
usuarios.empalme (0, usuarios.longitud);
res.estado (200).json({
mensaje: "Eliminó con éxito todos los usuarios",
usuarios,
});
} atrapar (error) {
res.estado (500).json({
mensaje: "Error al eliminar usuarios",
X,
});
}
});

Obtenga más información sobre las API RESTful

Este tutorial analiza cómo crear una API RESTful básica en Node. JS. Ha aprendido a crear un servidor Express, configurar rutas y, finalmente, crear funciones de controlador que interactúen con sus datos a través de solicitudes/respuestas HTTP.

Sin embargo, hay algunos temas esenciales que no se tratan aquí y que debe investigar más a fondo, incluido cómo conectar su aplicación a una base de datos como MongoDB y cómo proteger las rutas.

Cómo una base de datos MongoDB puede organizar mejor sus datos

MongoDB (de "humongous") es una base de datos multiplataforma orientada a documentos que se utiliza como alternativa a MySQL. Pero ¿qué significa eso?

Leer siguiente

CuotaPíoCorreo electrónico
Temas relacionados
  • Programación
  • JavaScript
  • API
Sobre el Autor
María Gathoni (2 artículos publicados)

Mary Gathoni es una desarrolladora de software apasionada por crear contenido técnico que no solo sea informativo sino también atractivo. Cuando no está codificando o escribiendo, le gusta salir con amigos y estar al aire libre.

Más de Mary Gathoni

Suscríbete a nuestro boletín

¡Únase a nuestro boletín para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse