Introducción a Node.js para principiantes

Simulando una API

No me quiero despedir sin antes hacer un interesante y revelador experimento. ¿Recordáis el proyecto del conversor de divisas? Pues os quiero mostrar como crear un prototipo muy muy sencillo simulando una API JSON de ese estilo usando lo que sabemos del módulo http.

Podríamos usar la siguiente base:

app_api.js

const http = require('http');

const server = http.createServer(function (request, response) {
    if (request.url === "/api/divisas") {
    	// Supondremos que tenemos los datos de un fichero o base de datos
        response.end();
    }
});

server.listen(3000);

Vamos a tomar los valores tal cual los devuelve la API de exchangeratesapi en este enlace.

let values = {
	"base":"EUR",
	"rates": {
		"USD":1.1199,
		"JPY":124.13,
		"GBP":0.8547
	}
}

response.end();

Ahora vamos a escribir el resultado en la respuesta, pero necesitamos transformar este objeto a formato JSON que es el que utilizan las API.

Pues hacer esto es tan fácil como usar la librería JSON de JavaScript y su método stringify de la siguiente forma:

let values = {
	"base":"EUR",
	"rates": {
		"USD":1.1199,
		"JPY":124.13,
		"GBP":0.8547
	}
}

response.write(JSON.stringify(values));
response.end();

Con esto podemos hacer la petición a la url /api/divisas y tendremos exactamente lo mismo que nos ofrece la API real:

http://127.0.0.1:3000/api/divisas

Claro, esto es sólo una simulación y los datos están escritos en crudo. La gracia del programa sería tener una base de datos actualizada y tomar la información para usarla en la API, pero no os preocupéis porque más adelante haré algún curso donde crearemos nuestras propias APIs mucho más interesantes que esta simulación.