SlideShare una empresa de Scribd logo
APIs	
  REST	
  con	
  	
  
NodeJS	
  y	
  MongoDB	
  
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	
  
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	
  
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	
  
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	
  
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	
  
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(…) 	
  	
  
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	
  
	
  
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	
  
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	
  
 	
   	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  /jorgezaccaro	
  
	
  	
  	
  /bogotajs-­‐apis	
  
REST	
  APIs	
  con	
  NodeJS	
  y	
  MongoDB	
  

Más contenido relacionado

PDF
Servidor FTP con usuarios en MySQL
PPTX
Trabajo de compu
DOCX
Capitulo 9 katlher bermejo
ODP
ROA - Resource Oriented Architecture
PPTX
Crear una pagina web
DOCX
Guia capitulo 9 tevez viñas
KEY
Aplicaciones web altamente escalables con Redis
DOCX
Capitulo 9
Servidor FTP con usuarios en MySQL
Trabajo de compu
Capitulo 9 katlher bermejo
ROA - Resource Oriented Architecture
Crear una pagina web
Guia capitulo 9 tevez viñas
Aplicaciones web altamente escalables con Redis
Capitulo 9

La actualidad más candente (11)

PPTX
Ficheros
PDF
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...
TXT
Cap9
DOCX
Capitulo 9, 11 11
PDF
Apli t1 practicas_apache
KEY
Redis, base de datos NoSQL clave-valor
DOCX
Pasos para prueba ftp de banda ku tambos
ODP
Ruby On Rails Jun2009
PDF
Acceso a un servidor FTP a través de usuarios almacenados en una base de dato...
PDF
Replicacion en mysq
PPTX
Migración de datos en drupal 8
Ficheros
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...
Cap9
Capitulo 9, 11 11
Apli t1 practicas_apache
Redis, base de datos NoSQL clave-valor
Pasos para prueba ftp de banda ku tambos
Ruby On Rails Jun2009
Acceso a un servidor FTP a través de usuarios almacenados en una base de dato...
Replicacion en mysq
Migración de datos en drupal 8
Publicidad

Destacado (11)

PDF
Introducción a NoSQL con MongoDB
PPTX
Introducción a NoSQL y MongoDB Webinar
PDF
Manual de instalacion de MongoDB - Windows 7
PDF
La arquitectura de elibom.com
PDF
Mondongo, un ODM para PHP y MongoDB
ODP
MongoDB - Madrid Devops Febrero
PPT
Bases de datos avanzado NOSQL
PDF
MongoDB: la BBDD NoSQL más popular del mercado
PDF
mongoDB - Arquitectura y Componentes
PDF
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
PDF
Introducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDB
Introducción a NoSQL y MongoDB Webinar
Manual de instalacion de MongoDB - Windows 7
La arquitectura de elibom.com
Mondongo, un ODM para PHP y MongoDB
MongoDB - Madrid Devops Febrero
Bases de datos avanzado NOSQL
MongoDB: la BBDD NoSQL más popular del mercado
mongoDB - Arquitectura y Componentes
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Introducción a NoSQL con MongoDB
Publicidad

Similar a APIs REST con NodeJS y MongoDB (20)

PDF
Creando una API Rest con Node.js y MongoDB
PDF
Opensouthcode: Microservicios sobre MEAN Stack
PDF
Microservicios sobre MEAN Stack
PPTX
JSDays Desarrolla tu primera API
PPTX
Taller desarrollo de apis
PDF
Semana 7 Servicios Web API REST con Mongodb
PDF
Semana 7 Servicios Web REST con MongoDB final
PDF
node-js-es.19.pdf
PPTX
MEAN Stack
PPTX
Node.js - un poco de informacion.
PDF
NodeJS y MongoDB
PDF
Explorando Mi Trayectoria: una Entrevista Exclusiva
ODP
Node.js - Eventos para Todos
PDF
Node js mongo crud tareas
PPTX
MEAN ¿otro buzzword?
PDF
Cómo crear un RESTful API con Go
PDF
5.2. api-rest
PDF
Tecnologías para microservicios
PDF
Introducción al desarrollo Web: Backend
PPTX
Presentacion taller de programacion
Creando una API Rest con Node.js y MongoDB
Opensouthcode: Microservicios sobre MEAN Stack
Microservicios sobre MEAN Stack
JSDays Desarrolla tu primera API
Taller desarrollo de apis
Semana 7 Servicios Web API REST con Mongodb
Semana 7 Servicios Web REST con MongoDB final
node-js-es.19.pdf
MEAN Stack
Node.js - un poco de informacion.
NodeJS y MongoDB
Explorando Mi Trayectoria: una Entrevista Exclusiva
Node.js - Eventos para Todos
Node js mongo crud tareas
MEAN ¿otro buzzword?
Cómo crear un RESTful API con Go
5.2. api-rest
Tecnologías para microservicios
Introducción al desarrollo Web: Backend
Presentacion taller de programacion

Último (20)

PPTX
Presentación PASANTIAS AuditorioOO..pptx
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
Presentación de Redes de Datos modelo osi
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
Maste clas de estructura metálica y arquitectura
PDF
Calidad desde el Docente y la mejora continua .pdf
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
Propuesta BKP servidores con Acronis1.pptx
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
Presentación PASANTIAS AuditorioOO..pptx
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Influencia-del-uso-de-redes-sociales.pdf
Power Point Nicolás Carrasco (disertación Roblox).pptx
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Presentación de Redes de Datos modelo osi
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
introduccion a las_web en el 2025_mejoras.ppt
Maste clas de estructura metálica y arquitectura
Calidad desde el Docente y la mejora continua .pdf
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
SAP Transportation Management para LSP, TM140 Col18
Propuesta BKP servidores con Acronis1.pptx
El-Gobierno-Electrónico-En-El-Estado-Bolivia
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad

APIs REST con NodeJS y MongoDB

  • 1. APIs  REST  con     NodeJS  y  MongoDB  
  • 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. 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. 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. 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. 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. 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. 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. 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. 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.                          /jorgezaccaro        /bogotajs-­‐apis   REST  APIs  con  NodeJS  y  MongoDB