SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
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	
  

Mais conteúdo relacionado

Mais procurados

Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...
Implementación Docker Swarm en Amazon Web Services usando Auto Scaling Groups...Adrián Lois
 
Apli t1 practicas_apache
Apli t1 practicas_apacheApli t1 practicas_apache
Apli t1 practicas_apachegarciadebora
 
Redis, base de datos NoSQL clave-valor
Redis, base de datos NoSQL clave-valorRedis, base de datos NoSQL clave-valor
Redis, base de datos NoSQL clave-valorAlberto Gimeno
 
Ruby On Rails Jun2009
Ruby On Rails Jun2009Ruby On Rails Jun2009
Ruby On Rails Jun2009Sergio Alonso
 
Acceso a un servidor FTP a través de usuarios almacenados en una base de dato...
Acceso a un servidor FTP a través de usuarios almacenados en una base de dato...Acceso a un servidor FTP a través de usuarios almacenados en una base de dato...
Acceso a un servidor FTP a través de usuarios almacenados en una base de dato...Rosariio92
 
Migración de datos en drupal 8
Migración de datos en drupal 8Migración de datos en drupal 8
Migración de datos en drupal 8Javier Gomez
 

Mais procurados (11)

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

Destaque

Introducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDBIntroducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDBScalia
 
Introducción a NoSQL y MongoDB Webinar
Introducción a NoSQL y MongoDB WebinarIntroducción a NoSQL y MongoDB Webinar
Introducción a NoSQL y MongoDB WebinarMongoDB
 
Manual de instalacion de MongoDB - Windows 7
Manual de instalacion de MongoDB - Windows 7Manual de instalacion de MongoDB - Windows 7
Manual de instalacion de MongoDB - Windows 7Mario Alfonso
 
La arquitectura de elibom.com
La arquitectura de elibom.comLa arquitectura de elibom.com
La arquitectura de elibom.comGerman Escobar
 
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDBMondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDBpablodip
 
Bases de datos avanzado NOSQL
Bases de datos avanzado NOSQLBases de datos avanzado NOSQL
Bases de datos avanzado NOSQLjosecuartas
 
mongoDB - Arquitectura y Componentes
mongoDB - Arquitectura y ComponentesmongoDB - Arquitectura y Componentes
mongoDB - Arquitectura y Componentesomenar
 
Introducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDBIntroducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDBErick Camacho
 

Destaque (11)

Introducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDBIntroducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDB
 
Introducción a NoSQL y MongoDB Webinar
Introducción a NoSQL y MongoDB WebinarIntroducción a NoSQL y MongoDB Webinar
Introducción a NoSQL y MongoDB Webinar
 
Manual de instalacion de MongoDB - Windows 7
Manual de instalacion de MongoDB - Windows 7Manual de instalacion de MongoDB - Windows 7
Manual de instalacion de MongoDB - Windows 7
 
La arquitectura de elibom.com
La arquitectura de elibom.comLa arquitectura de elibom.com
La arquitectura de elibom.com
 
Mondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDBMondongo, un ODM para PHP y MongoDB
Mondongo, un ODM para PHP y MongoDB
 
MongoDB - Madrid Devops Febrero
MongoDB - Madrid Devops FebreroMongoDB - Madrid Devops Febrero
MongoDB - Madrid Devops Febrero
 
Bases de datos avanzado NOSQL
Bases de datos avanzado NOSQLBases de datos avanzado NOSQL
Bases de datos avanzado NOSQL
 
MongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercadoMongoDB: la BBDD NoSQL más popular del mercado
MongoDB: la BBDD NoSQL más popular del mercado
 
mongoDB - Arquitectura y Componentes
mongoDB - Arquitectura y ComponentesmongoDB - Arquitectura y Componentes
mongoDB - Arquitectura y Componentes
 
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4jBases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
Bases de Datos No Relacionales (NoSQL): Cassandra, CouchDB, MongoDB y Neo4j
 
Introducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDBIntroducción a NoSQL con MongoDB
Introducción a NoSQL con MongoDB
 

Semelhante a APIs REST con NodeJS y MongoDB

Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsFreelancer
 
API REST conceptos (Rails-api)
API REST conceptos (Rails-api)API REST conceptos (Rails-api)
API REST conceptos (Rails-api)Daryl Moreno
 
Taller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHTaller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHAlejandro Esquiva Rodriguez
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJSBEEVA_es
 
Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con RESTAlex Puig
 
NodeJS y MongoDB
NodeJS y MongoDBNodeJS y MongoDB
NodeJS y MongoDBArsys
 
Mallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDBMallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDBEmilio Torrens
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completogenaro martinez
 
Creacion de un Repositorio Local en CentOS_6.0
Creacion de un Repositorio Local en CentOS_6.0Creacion de un Repositorio Local en CentOS_6.0
Creacion de un Repositorio Local en CentOS_6.0Fredy Janeta Bastidas
 
105.desarrollo rest-con-rails
105.desarrollo rest-con-rails105.desarrollo rest-con-rails
105.desarrollo rest-con-railsERWIN AGUILAR
 
92 Php. Instalar Php4 Como Cgi
92 Php. Instalar Php4 Como Cgi92 Php. Instalar Php4 Como Cgi
92 Php. Instalar Php4 Como CgiJosé M. Padilla
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCParadigma Digital
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web javaCésar Ocampo
 

Semelhante a APIs REST con NodeJS y MongoDB (20)

Desarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on RailsDesarrollo de Apps Web en Ruby on Rails
Desarrollo de Apps Web en Ruby on Rails
 
API REST conceptos (Rails-api)
API REST conceptos (Rails-api)API REST conceptos (Rails-api)
API REST conceptos (Rails-api)
 
Taller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHTaller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSH
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
 
Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con REST
 
Rest
RestRest
Rest
 
Couch db
Couch dbCouch db
Couch db
 
NodeJS y MongoDB
NodeJS y MongoDBNodeJS y MongoDB
NodeJS y MongoDB
 
REST - deSymfony2012
REST - deSymfony2012REST - deSymfony2012
REST - deSymfony2012
 
Mallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDBMallorca MUG: Introducción a MongoDB
Mallorca MUG: Introducción a MongoDB
 
php
phpphp
php
 
Tutorial de php y my sql completo
Tutorial de php y my sql completoTutorial de php y my sql completo
Tutorial de php y my sql completo
 
Creacion de un Repositorio Local en CentOS_6.0
Creacion de un Repositorio Local en CentOS_6.0Creacion de un Repositorio Local en CentOS_6.0
Creacion de un Repositorio Local en CentOS_6.0
 
105.desarrollo rest-con-rails
105.desarrollo rest-con-rails105.desarrollo rest-con-rails
105.desarrollo rest-con-rails
 
OpenAPI 3.0.2
OpenAPI 3.0.2OpenAPI 3.0.2
OpenAPI 3.0.2
 
Laravel 5.1
Laravel 5.1Laravel 5.1
Laravel 5.1
 
92 Php. Instalar Php4 Como Cgi
92 Php. Instalar Php4 Como Cgi92 Php. Instalar Php4 Como Cgi
92 Php. Instalar Php4 Como Cgi
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web java
 

Último

R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 

Último (20)

R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 

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