DEV Community

Maximiliano Burgos
Maximiliano Burgos

Posted on • Updated on

Como crear una API con ExpressJS y Node

Cuando hablamos de desarrollo móvil, es muy normal interactuar con APIs constantemente. Pero si bien podemos usar una librería como Retrofit para llamar APIs e interactuar con sus respuestas, es importante también tener una idea general de como crearlas.

Pero que es exactamente una API?

API
Una API (Application Programming Interface) es como una caja negra donde pedimos cierta información y la recibimos en un determinado formato (JSON o XML en general). Existen APIs locales (como GPS de Android, la cual nos permite acceder a datos de geolocalización) y APIs remotas (como Google Maps, que nos permite acceder a la información del mapa, direcciones y demás).

Encontré un video por youtube que explica este concepto mucho más a fondo y ejemplificado:
https://www.youtube.com/watch?v=u2Ms34GE14U

Entiendo los fundamentos, pero por donde empiezo?

Para plantear el desarrollo de una API, debemos elegir una tecnología de servidor que nos permita crearla de manera ágil. Vamos a usar NodeJS. Pueden descargarlo desde aquí. Una vez que lo tengan instalado, pueden asegurarse que funciona poniendo en la consola (recomiendo usar Cmder) el siguiente comando:

$ node -v
Enter fullscreen mode Exit fullscreen mode

Si nos devuelve la versión, esta bien instalado. En caso contrario, si nos devuelve algo como “comando no encontrado”, debemos proceder a su reinstalación.

Un Framework para dominarlos a todos!

Con NodeJS instalado también deberían tener npm (Node Package Manager), el gestor de dependencias de node. Asi que procedemos a crear un proyecto nuevo:

$ mkdir miProyecto
$ cd miProyecto
$ npm init
Enter fullscreen mode Exit fullscreen mode

Vamos a presionar Enter en todas las opciones que salen, para que el proyecto se configure por defecto. Luego, vamos a escribir:

$ npm install express --save
Enter fullscreen mode Exit fullscreen mode

Lo cual nos va a instalar Express, el framework de Node que nos permitirá crear páginas webs y APIs. Hoy nos vamos a centrar en lo segundo. El “ — save” se asegura de guardar la dependencia en nuestro package-json para que luego cuando otro desarrollador baje nuestro proyecto, solo tenga que escribir:

$ npm install
Enter fullscreen mode Exit fullscreen mode

Y con ello se descargan todas las dependencias automáticamente.

Hola Mundo y un poco mas…

Ahora vamos a crear nuestra API! Va a tener solo un método GET muy simple, pero es un comienzo :).

Vamos a crear un archivo index.js en nuestro directorio del proyecto y agregaremos las siguientes lineas:

var express = require('express');

var app = express();app.get('/', function (req, res) {
  res.send('Hola Mundo!');
});

app.listen(3000, function () {
  console.log('App funcionando en el puerto 3000!');
});
Enter fullscreen mode Exit fullscreen mode

Vamos a analizar paso a paso lo que hicimos:

  • Creamos un objeto express que contiene la referencia a la dependencia de nuestro framework
  • Creamos un objeto app que contiene la inicialización de express.
  • Creamos una ruta get a la url http://localhost:3000/ que nos devolverá un párrafo que dice “Hola Mundo!”
  • Llamamos al método listen con los siguientes parámetros:
  • Puerto: El puerto donde se iniciará nuestro servidor, en este caso 3000.
  • CallBack Function: Cuando el servidor termine de levantarse y funcione correctamente, tenemos un callback para hacer algo, y en este caso devolvemos un texto en consola diciendo que fue todo bien y que estamos corriendo en el puerto 3000.

Ya tenemos un proyecto en Express funcionando! Pero no es una API. Para cumplir dicho requisito debería devolvernos un formato de respuesta diferente, en este caso json. Asi que creamos un objeto en java y se lo pasaremos al método res.send():

app.get('/', function (req, res) {
  var json = {
    message: "Soy una API!",
    version: 1.0.0
  }  
  res.send(json);
});
Enter fullscreen mode Exit fullscreen mode

Y ahora si nos va a devolver un json como corresponde. Podríamos acortar este código y ahorrarnos unas lineas de la siguiente manera:

app.get('/', function (req, res) {
  res.send({
    message: "Soy una API!",
    version: 1.0.0
  });
});
Enter fullscreen mode Exit fullscreen mode

Para probar el servidor andando vamos a escribir en consola:

$ node index.js
Enter fullscreen mode Exit fullscreen mode

Y con esto ya tienen una API funcionando, felicidades! 😀

Espero que este artículo les haya sido de utilidad y nos vemos en el siguiente!

Oldest comments (0)