Crea y testea una API en 5 minutos en JS con express

En este capítulo os voy a enseñar a crear y testear una API REST en javascript con el framework de ExpressJS y nodejs  en 5 minutos para hacer cualquier cosa rápida, flexible y sencilla que necesitéis.

Instalación del entorno

Lo primero que tenemos que hacer es asegurarnos de que tenemos nodejs y npm instalado:

$node -v

v8.11.3

$npm -v

6.4.1

Si no lo tenemos instalarlo con la última versión.

Posteriormente crearemos una carpeta, y ejecutaremos un npm init para generar un fichero package.json por medio de un formulario, que sera el fichero de configuración por defecto.

mkdir api-prueba
cd api-prueba/
npm init
{
  "name": "api-prueba",
  "version": "1.0.0",
  "description": "Ironchip pills",
  "main": "index.js",
  "scripts": {
    "test": "Error"
  },
  "author": "Julen Martinez",
  "license": "ISC"
}

El fichero de configuración nos tiene que quedar algo así.

Instalación de las dependencias

Ahora tenemos que añadir las dependencias de express para la aplicación.

npm install express --save
{
  "name": "blog",
  "version": "0.0.1",
  "description": "The API for ironchip blog",
  "main": "index.js",
  "scripts": {
    "test": "echo \\\"Error: \\\" && exit 1\""
  },
  "author": "Julen Martinez",
  "license": "ISC",
  "dependencies": {
    "express": "^4.16.4"
  }
}

Como podemos ver se nos ha  añadido una propiedad más, “dependencies” con la dependencia de express en nuestro package.json.

Instalación Nodemon

Ahora añadiremos nodemon, que se utiliza en desarrollo para que se recargue automáticamente la api si hay algún cambio.

Añadimos a las dependecias nodemon con:

npm install nodemon --save

y añadimos lo siguiente a la propiedad start del fichero package.json.

{
  "name": "api-prueba",
  "version": "0.0.1",
  "description": "The API for ironchip blog",
  "main": "index.js",
  "scripts": {
    "start": "nodemon index.js",
    "test": "echo \\\"Error: \\\" && exit 1\""
  },
  "author": "Julen Martinez",
  "license": "ISC",
  "dependencies": {
    "express": "^4.16.4",
    "nodemon": "^1.18.7"
  }
}

Ahora podemos arrancar el proyecto a tráves del apartado “start” de la propiedad “scripts”. De esta manera:

npm start

Ahora cada vez que cambies el fichero la api se recargará automáticamente.

Creación de la API

Vamos a programar un poquito, creamos con el editor de ficheros que prefiráis un archivo index.js con el siguiente contenido.

//Requires
var express = require('express');

// Inicializar variables
var app = express();

//Llamada de prueba en /
app.get('/', (req, res, next) => {

    res.status(200).json({
        ok: true,
        mensaje: 'Peticion realizada correctamente para ironchip pills'
    });

});

// Escuchar peticiones
app.listen(3000, () => {
    console.log('Express server puerto 3000: \x1b[32m%s\x1b[0m', 'online');
});

Ya esta, tenemos una básica API con expressjs lista para ser probada.

Ejecución de la API

desde la carpeta donde se encuentra nuestro index.js, ejecuta:

node index.js

y podemos probarlo haciendo un GET desde nuestro navegador favorito en la dirección localhost:3000.

Ya habéis visto lo fácil que es!

Para tener una API funcionando solo tenemos que añadir la dependencia de express y cargarlo en una variable. En nuestro caso, app.

Luego, añadimos un endpoint en / que reponda con 200 OK de estado y en formato json el mensaje que quieras. y por último, vemos que automáticamente express se pone a escuchar en el puerto 3000.

Añadir cabecera HTTP (CORS)

Para terminar este post, os enseñare ha añadir las cabeceras de seguridad para el control de acceso HTTP (CORS), que se hace añadiendo al archivo index.js lo siguiente.

//Requires
var express = require('express');
var bodyParser = require('body-parser');

// Inicializar variables
var app = express();

//Aplicar cabeceras de seguridad
app.use(function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    res.header("Access-Control-Allow-Methods", "POST, GET, PUT, DELETE, OPTIONS");
    next();
});

app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());

app.get('/', (req, res, next) => {

    res.status(200).json({
        ok: true,
        mensaje: 'Peticion realizada correctamente para ironchip pills'
    });

});

// Escuchar peticiones
app.listen(3000, () => {
    console.log('Express server puerto 3000: \x1b[32m%s\x1b[0m', 'online');
});

Con esto ya tiene una manera rápida y sencilla de crear API REST muy básica para cualquier proyecto que lo necesitéis.

En los próximos post os enseñare a conectar la API a distintas BBDD, crear todos los tipos de consulta y a organizar el código y las consultas con rutas. Espero que os sirva.

Saludos!!


julen

julen

Emprendedor, Co-Founder Ironchip. Full-stack developer.

Leave a Reply

Your email address will not be published. Required fields are marked *