API RESTful con NodeJS

A continuación podemos ver una simple Api RESTful con NodeJS.

Esto es una continuación del post: API RESTful

A nivel de archivos encontramos los siguientes

  • index.js -> este posee la definición de las rutas y la inicilización del servidor.
  • package.json -> posee las especificaciones de la aplicación y los node-modules necesarios
  • endpoitns/personas.js -> en este se encuentran cada uno de las operaciones sobre personas.
  • models/personas.js -> en este archivo se encuentra un array de objetos para ser usados como datos del sistema.

Archivo: index.js

Como en toda aplicación con NodeJS iniciamos con incluyendo los paquetes necesarios

  • express: framework para realizar aplicaciones Web
  • body-parser: utilizado para interpretar los datos recibidos en el request de la petición

Al trabajar con express necesitamos generar la aplicación y configurarla

const app = express();

// configuro la api
app.use(bodyParser.urlencoded({ extended:false}));
app.use(bodyParser.json());

Posteriormente incluimos los endpoint para cada petición

//incluyo los endpotins
const personas = require('./endpoint/personas');

Posteriormente definimos las rutas de nuestra api

app.get('/personas', personas.GetPersonas);
app.get('/personas/:id', personas.GetPersonaById);
app.post('/personas', personas.SavePersona);
app.put('/personas/:id', personas.EditPersona);
app.delete('/personas/:id',personas.DelPersona);

Donde en cada ruta tenemos que definir

  • El metodo http, los cuales estamos usando get, post, put y delete
  • Luego la ruta a implementar, en el caso de aquellas donde necesitamos recibir parámetros los indicamos con «:» antes del nombre a indicarle
  • Finalmente la función/handler dentro del endpoint a invocar para esa ruta

Una vez definidas las rutas, hacemos que express escuche el puerto.

app.listen(port,()=>{
     console.log("ApiREST runnint on port:"+port);
})

Archivo: endpoints/personas.js

En este archivo tenemos las funciones definidas para cada una de las rutas

1.- Listar todos los datos

function GetPersonas(req, res){
    res.set('Content-Type', 'application/json');
    res.send(JSON.stringify(data.Sample));
}

Cada función definida para cada ruta debe tener los parámetros

  • Response (res): Este es utilizado para responder al cliente que consume el endpoint, del response utilizamos las siguientes funciones, en los ejemplos desarrollados
    • set(): para setear el tipo de dato de retorno
    • send(): para mandar la respuesta
    • sendStatus(): respondemos con el estado HTTP, utilizado los codigos definidos en el protocolo (link)
  • Request (req): Por medio de este obtenernos los datos enviados

1.- Retornar los datos solicitados

function GetPersonaById(req, res){
   let personaId = req.params.id;
   let respuesta = data.Sample.find(sample => sample.Id === personaId);
   if (respuesta == null){
      res.sendStatus(404);
   }else{
      res.set('Content-Type', 'application/json');
      res.send(JSON.stringify(respuesta));
  }
}

Con la linea de código req.params.id obtenemos el «id» definido en la ruta por lo cual podemos obtener el id indicado en /personas/3

En el siguiente repositorio de GitHub se tienen la APIRest completa <link>, el resto del código es fácil de interpretar por eso no lo escribo todo acá, puesto que es para que sea como una referencia mínima al como codificar la API

51 Comments

  1. Pingback: API RESTful – Otro Del Montón

  2. Pingback: sildenafil citrate 100mg

  3. Pingback: reputable overseas online pharmacies

  4. Pingback: us based essay writing service

  5. Pingback: college application essay help online

  6. Pingback: trusted online pharmacy cialis

  7. Pingback: where to buy female viagra usa

  8. Pingback: cialis samples

  9. Pingback: buying cialis online usa

  10. Pingback: where can buy viagra

  11. Pingback: cialis drug class

  12. Pingback: tadalafil drug interactions

  13. Pingback: gabapentin nz

  14. Pingback: sandoz azithromycin 900 mg

  15. Pingback: spiraldynamics

  16. Pingback: Spiral Dynamics

  17. Pingback: does bactrim affect birth control

  18. Pingback: vxi.su

  19. Pingback: cozaar side effects anxiety

  20. Pingback: site

  21. Pingback: baclofen dose

  22. Pingback: side effects of buspar

  23. Pingback: repaglinide and pregnancy

  24. Pingback: acarbose instructions

  25. Pingback: remeron

  26. Pingback: sitagliptin saxagliptin linagliptin and alogliptin

  27. Pingback: mutual of omaha rx pharmacy

  28. Pingback: cialis online pills

  29. Pingback: stromectol tablets buy online

  30. Pingback: animal porn

  31. Pingback: ananın amı

  32. Pingback: child porn

  33. Pingback: neurontin medication

  34. Pingback: ampicillin continuous infusion

  35. Pingback: anastrozole vs tamoxifen quality of life

  36. Pingback: ciprofloxacin side effects in elderly

  37. Pingback: porn

  38. Pingback: Cocuk pornosu

  39. Pingback: child porn

  40. Pingback: child porn

  41. Pingback: child porn

  42. Pingback: fuck

  43. Pingback: child porn

  44. Pingback: sex

  45. Pingback: spam

  46. Pingback: porn

  47. Pingback: crestor people's pharmacy

  48. Pingback: mexican pharmacy online medications

  49. Pingback: baclofen inhouse pharmacy

  50. Pingback: starzbet

  51. Pingback: starzbet

Comments are closed.