APIs REST con NodeJS y MongoDB

1,013 views

Published on

An introduction to the REST architectural style and the implementation of REST APIs using NodeJS and MongoDB.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,013
On SlideShare
0
From Embeds
0
Number of Embeds
30
Actions
Shares
0
Downloads
17
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

APIs REST con NodeJS y MongoDB

  1. 1. APIs  REST  con     NodeJS  y  MongoDB  
  2. 2. 1.  REST:  Representa0onal  State  Transfer    -­‐  Definición    -­‐  Principios   2.  REST  APIs  con  NodeJS    -­‐  Servidor  HTTP    -­‐  Usando  ExpressJS   3.  REST  APIs  con  MongoDB    -­‐  Mongo  shell    -­‐  MongoDB  driver       CONTENIDO   REST  APIs  con  NodeJS  y  MongoDB  
  3. 3. 1.  Node.js      -­‐  hCp://nodejs.org/download/   2.  MongoDB      -­‐  hCp://www.mongodb.org/downloads   3.  MongoDB  driver    -­‐  npm  install  mongodb   4.  ExpressJS    -­‐  npm  install  express   5.  Otros    -­‐  npm  install  body-­‐parser   REQUISITOS   REST  APIs  con  NodeJS  y  MongoDB  
  4. 4. 1.  REST:  Representa0onal  State  Transfer   REST  APIs  con  NodeJS  y  MongoDB   1.  Qué  es?      -­‐  Un  esLlo  de  arquitectura  de  soOware   2.  Qué  no  es?      -­‐  Un  estándar  o  protocolo   3.  Quién  lo  propuso?      -­‐  Roy  Fielding  en  su  tesis  doctoral   4.  Transferencia  de  qué?    -­‐  De  la  representación  del  estado  de  recursos   5.  Por  ejemplo?    -­‐  World  Wide  Web,  Facebook  Graph  API  
  5. 5. 1.  REST:  Principios  y  restricciones   REST  APIs  con  NodeJS  y  MongoDB   1.  Recursos  y  representaciones    -­‐    Todo  en  términos  de  recursos  en  general,  no  de  archivos  específicos   2.  Recursos  iden0ficados  con  URIs      -­‐    No:        facebook.com/profile.php    -­‐  Si:        facebook.com/username    -­‐    Si:        twiCer.com/username/status/:tweetID     3.  Operaciones  sobre  recursos  con  métodos  HTTP      -­‐  GET            -­‐  PUT    -­‐  POST          -­‐  DELETE   4.  Interfaces  uniformes  con  sustan0vos,  no  verbos      -­‐  No:        /obtenerSaldoACuenta    -­‐  No:        /agregarSaldoACuenta    -­‐  Si:    GET    /cuentas/#cuenta/saldo    -­‐  Si:    POST  /cuentas/#cuenta/saldo  
  6. 6. 1.  REST:  Beneficios   REST  APIs  con  NodeJS  y  MongoDB   Cliente-­‐ Servidor   Stateless   Cacheable   Layered   Eficiencia   x   Escalabilidad   x   x   x   Desempeño   percibido   x   x  
  7. 7. 2.  REST  APIs  con  NodeJS  y  ExpressJS   REST  APIs  con  NodeJS  y  MongoDB   1.  Servidor  HTTP      -­‐  api    =  require(‘express’)()    -­‐  hCp  =  require(‘hCp’).createServer(api)   2.  Enrutamiento  de  solicitudes      -­‐    api.route(…)          -­‐  api.all(…)    -­‐    api.get(…)        -­‐    api.put(…)    -­‐    api.post(…)        -­‐    api.delete(…)   3.  Procesamiento  de  las  solicitudes    -­‐    req.body    -­‐  req.params   4.  Respuesta  a  las  solicitudes    -­‐    res.status(…)        -­‐  res.setHeader(…)    -­‐  res.write(…)        -­‐  res.end(…)    
  8. 8. 3.  REST  APIs  con  NodeJS  y  MongoDB   REST  APIs  con  NodeJS  y  MongoDB   1.  Qué  es  MongoDB?      -­‐  Una  base  de  datos  no  relacional  (NoSQL)   2.  Cuál  es  la  unidad  de  almacenamiento      -­‐  Documentos  (vs  filas  en  SQL)   3.  Cuál  es  la  unidad  de  agrupación?      -­‐  Colecciones  (vs  tablas  en  SQL)   4.  Licencias  o  regalías?    -­‐  No,  es  open  source     5.  Ventajas  para  JavaScript?    -­‐  Notación  muy  similar      -­‐  No  requiere  esquemas  (i.e.  tablas  SQL)    -­‐  Los  documentos  lucen  como  objetos    
  9. 9. 3.  REST  APIs  con  NodeJS  y  MongoDB   REST  APIs  con  NodeJS  y  MongoDB   1.  MongoDB  driver      -­‐  mongoClient  =  require(‘mongodb’).MongoClient   2.  Conectarse  a  una  base  de  datos    -­‐    mongoClient.connect('mongodb://localhost:27017/databaseName’)   3.  Acceder  a  una  colección    -­‐  db.collecLon(‘collecLonName’)   4.  Operaciones  CRUD  (Create,  Read,  Update,  Delete)    -­‐    Create:    collecLon.insert(document)    -­‐    Read:    collecLon.find(query)      -­‐    Update:    collecLon.update(query,  modifier)    -­‐    Delete:    collecLon.remote(query)     5.  Mongo  Shell    -­‐  mongod    Inicia  el  proceso  de  la  base  de  datos  MongoDB    -­‐  mongo    Inicia  una  interfaz  de  línea  de  comandos  a  MongoDB  
  10. 10. Referencias     -­‐  APIGEE   hCp://apigee.com/     -­‐  REST  API  Tutorial   hCp://www.restapitutorial.com/     -­‐  ExpressJS   hCp://expressjs.com/     -­‐  MongoDB   hCp://docs.mongodb.org/manual/core/crud-­‐introducLon/   hCps://github.com/mongodb/node-­‐mongodb-­‐naLve     REST  APIs  con  NodeJS  y  MongoDB  
  11. 11.                          /jorgezaccaro        /bogotajs-­‐apis   REST  APIs  con  NodeJS  y  MongoDB  

×