Primeros pasos RESTful API con Node js 1/2

abrahamjso
Node & Angular JS
Published in
3 min readAug 22, 2014

--

Una de las nuevas tendencias e implementaciones que se están dando hoy en día al momento de construir una app o una webapp, es el tener una buena base del lado del Servidor(Backend), orientándolo a Servicios Web (Web Services).

Hay muchas ramas de Servicios Web, donde podríamos seguir hablando, pero en este tutorial el objetivo será construir un RESTful API con nodejs, express & mongodb.

RESTful

Se compone por cuatro principios:
-Protocolo cliente/servidor (sin el uso de sesiones o cookies).
-Operaciones POST, GET, PUT, DELETE, etc…
-Emplean un localizador de recursos uniforme (URL).
-Empleo de algún formato de intercambio de datos (json, xml, etc.).

Manos a la obra

En éste ejemplo construiremos un sencillo servicio de reportes, aplicando los cuatro principios antes comentados:
Protocolo: HTTP
Formato: JSON
Operaciones & URL:

route                     POST    GET    PUT    DELETE   
/api/reports ✓ ✓
/api/reports/:id ✓ ✓ ✓

Estructura del Proyecto

|--ReportAPI/
|--models/
|--report.js
|--routes/
|--reports.js
|--node_mules/
|--body-parser/
|--express/
|--mongoose/
|--public/
|--package.json
|--server.js

Nuestro proyecto estará dividido por modelos(contiene el Schema del reporte), rutas(Se define las operaciones & URL a usarse), módulos de node(librerías empleadas), public(archivos del lado del cliente como html, css, entre otros…), package.json(decimos que dependencias usaremos) & server.js(nuestro main, el encargado de correr el proyecto).

Primeros pasos

package.json
Es un archivo que contiene metadata relevante del proyecto, como la identidad(autor, descripción, versión, licencia, etc…) y dependencias que usa(en nuestro caso usaremos express. body-parser & mongoose).

{
“name”: “ReportAPI”,
“version”: “0.0.1",
“private”: true,
“main”: “server.js”,
“author”: “Abraham Silva”,
“dependencies”:{
“express”: “~4.2.0",
“body-parser”: “~1.0.0",
“mongoose”: “~3.8.11"
}
}

Una vez creado el archivo, tecleamos en la terminal el siguiente comando:

npm install

Podremos ver en la terminal como se crea un folder(node_modules), donde nos agregará los módulos, ya antes mencionados para construir nuestro servicio.

Ojo:
Nuestro archivo main es server.js, el cuál servirá el archivo principal donde tendremos la configuración, rutas, entre otros, así que continuaremos a construirlo.

server.js

//libraries
var express = require(‘express’);
var bodyParser = require(‘body-parser’);
var mongoose = require(‘mongoose’);
//init app
var app = express();
//define port
var port = process.env.PORT || 3000;
var router = express.Router();
//Sample Route
router.get(“/”, function(req, res){
res.json({ message: ‘Hi everybody…!’});
});
//Middleware
app.use(‘/api’, router);
//Start the server
app.listen(port);
console.log(‘Server listening in the port: ‘ + port);

Una vez creado el archivo anterior, podemos correrlo y tener un pequeño servicio, donde nos regresará una respuesta, para esto tecleamos en la terminal:

npm server

Nuestra única ruta disponible para este servicio es un GET, que correrá con la siguiente url

http://localhost:3000/api/

Testing

Si queremos testear nuestro pequeño servicio, lo podemos hacer con la herramienta postman para chrome.

Dejo aquí la liga del repositorio.

Continuación

Parte 2

--

--

abrahamjso
Node & Angular JS

Techie, Software Developer, Entrepreneur, Pizza, Taco Burrito, Gorditas, Tostadas, Frijoles… Lover!