Taller
Creando una API Rest con
Node.js y MongoDB
Patricio Soriano Castro
@sigdeletras
II Jornadas Informática
IES Trassierra
12 marzo 2020
Índice
● “Hola Mundo” en
Javascript
Índice
● “Hola Mundo” en
Javascript
● Algo de teoría...
Índice
● “Hola Mundo” en
Javascript
● Algo de teoría...
● Picando código
“Hola Mundo” en Javascript
Crear un programa “Hola Mundo” con Javascript
“Hola Mundo” en Javascript
Crear un programa “Hola Mundo” con Javascript
● Sin usar HTML
“Hola Mundo” en Javascript
Crear un programa “Hola Mundo” con Javascript
● Sin usar HTML
● Sin usar navegador
● ???
“Hola Mundo” en Javascript
● Con Node.js
● Creamos una archivo con
holamundo.js
console.log(“Hola Mundo”)
● Desde terminal
$ node holamundo
Algo de teoría….Node.js
Node.js es un entorno de desarrollo del lado
del servidor open source y multiplataforma
escrito en JavaScript orientado a eventos
asíncronos.
Características
● Desarrollo en JavaScript
● Basado en el motor V8 de Chrome
● Operaciones de E/S sin bloqueos
● Orientado a eventos (asíncrono)
● Liviano y Eficiente
● Gestor de paquetes NPM
● Una de las herramientas estándar en del desarrollo Web
(stack MEAN, MERN, MEVN)
¿Cuándo usar Node.js?
● Servidores Web: Con el uso de librerías que se
encuentran en los paquetes propios de Node.JS o de
terceros como Express, Koa y Hapi.
● Sockets: Son eventos que para realizar chats y
aplicaciones en tiempo real es una excelente opción,
sobretodo gracias a su gran velocidad.
● IOT: Programar placas pequeñas con poco hardware
como un Arduino, permite desarrollar una aplicación y
desplegarla
NPM
Algo de teoría...API
El término API es una abreviatura de Application
Programming Interfaces, que en español significa
interfaz de programación de aplicaciones.
Se trata de un conjunto de definiciones y protocolos
que se utiliza para desarrollar e integrar el software
de las aplicaciones, permitiendo la comunicación
entre dos aplicaciones de software a través de un
conjunto de reglas.
Algo de teoría...API REST
REST es una interfaz para conectar
varios sistemas basados en el
protocolo HTTP y nos sirve para
obtener y generar datos y operaciones,
devolviendo esos datos en formatos
muy específicos, como XML y JSON.
Características de API REST
● Protocolo cliente/servidor sin estado: cada petición HTTP contiene toda
la información necesaria para ejecutarla, lo que permite que ni cliente ni
servidor necesiten recordar ningún estado previo para satisfacerla.
● Las operaciones más importantes relacionadas con los datos en cualquier
sistema REST y la especificación HTTP son cuatro: POST (crear), GET (leer
y consultar), PUT (editar) y DELETE (eliminar).
● Los objetos en REST siempre se manipulan a partir de la URI.
¿Cómo vamos a montar nuestra API Rest?
Express. Framework de Node diseñado para
crear aplicaciones web y API.
● Manejo específico de diferentes verbos HTTP
● Gestión separada de las peticiones por medio
URL (routes)
● Servicio de ficheros estáticos
● Configuración de plantillas
● Alternativas: adonis.js, Nest
¿...y los datos?
MongoDB Almacén de
documentos (JSON)
Algo de teoría...Relacional vs No Relacional
SQL NoSQL
Integridad de datos
(exactitud y consistencia)
Cada dato tiene un tipo definido No se exige definir el tipo de
datos que vas a almacenar.
Operaciones atómicas
(un cambio que afecta a
múltiples entidades)
Atomicidad mediante relaciones No existe relación, pero
podemos usar referencias
Escalabilidad Vertical Horizontal
Velocidad - +
Consistencia vs
Redundancia
Una única vez en toda la base de
datos
Repetir adrede los datos a
conveniencia
Comodidad para el
desarrollador
Madurez Prototipado
¿Cuándo?
● La velocidad de lectura y escritura es más importante que mantener la
consistencia.
● No sabes cómo se verá la estructura de tus datos al final, y
probablemente cambie mucho.
● Te es más fácil adquirir varias máquinas modestas a través del tiempo
que invertir en una sola muy potente.
● Prefieres algo fácil de usar como programador, que no te exige
compromisos y te deje almacenar casi cualquier cosa donde quieras.
¿...y los datos?
● Mongoose (ODM)
○ Definición de esquemas
○ Tipado (SchemaTypes) de
atributos, atributos virtuales
○ Métodos de validación,
indexado
○ Expresiones regulares
○ Funciones Get/Set
Picando código
Instalación ☑
https://github.com/sigdeletras/taller_node

Creando una API Rest con Node.js y MongoDB

  • 1.
    Taller Creando una APIRest con Node.js y MongoDB Patricio Soriano Castro @sigdeletras II Jornadas Informática IES Trassierra 12 marzo 2020
  • 2.
  • 3.
    Índice ● “Hola Mundo”en Javascript ● Algo de teoría...
  • 4.
    Índice ● “Hola Mundo”en Javascript ● Algo de teoría... ● Picando código
  • 5.
    “Hola Mundo” enJavascript Crear un programa “Hola Mundo” con Javascript
  • 6.
    “Hola Mundo” enJavascript Crear un programa “Hola Mundo” con Javascript ● Sin usar HTML
  • 7.
    “Hola Mundo” enJavascript Crear un programa “Hola Mundo” con Javascript ● Sin usar HTML ● Sin usar navegador ● ???
  • 8.
    “Hola Mundo” enJavascript ● Con Node.js ● Creamos una archivo con holamundo.js console.log(“Hola Mundo”) ● Desde terminal $ node holamundo
  • 9.
    Algo de teoría….Node.js Node.jses un entorno de desarrollo del lado del servidor open source y multiplataforma escrito en JavaScript orientado a eventos asíncronos.
  • 10.
    Características ● Desarrollo enJavaScript ● Basado en el motor V8 de Chrome ● Operaciones de E/S sin bloqueos ● Orientado a eventos (asíncrono) ● Liviano y Eficiente ● Gestor de paquetes NPM ● Una de las herramientas estándar en del desarrollo Web (stack MEAN, MERN, MEVN)
  • 11.
    ¿Cuándo usar Node.js? ●Servidores Web: Con el uso de librerías que se encuentran en los paquetes propios de Node.JS o de terceros como Express, Koa y Hapi. ● Sockets: Son eventos que para realizar chats y aplicaciones en tiempo real es una excelente opción, sobretodo gracias a su gran velocidad. ● IOT: Programar placas pequeñas con poco hardware como un Arduino, permite desarrollar una aplicación y desplegarla
  • 12.
  • 13.
    Algo de teoría...API Eltérmino API es una abreviatura de Application Programming Interfaces, que en español significa interfaz de programación de aplicaciones. Se trata de un conjunto de definiciones y protocolos que se utiliza para desarrollar e integrar el software de las aplicaciones, permitiendo la comunicación entre dos aplicaciones de software a través de un conjunto de reglas.
  • 16.
    Algo de teoría...APIREST REST es una interfaz para conectar varios sistemas basados en el protocolo HTTP y nos sirve para obtener y generar datos y operaciones, devolviendo esos datos en formatos muy específicos, como XML y JSON.
  • 17.
    Características de APIREST ● Protocolo cliente/servidor sin estado: cada petición HTTP contiene toda la información necesaria para ejecutarla, lo que permite que ni cliente ni servidor necesiten recordar ningún estado previo para satisfacerla. ● Las operaciones más importantes relacionadas con los datos en cualquier sistema REST y la especificación HTTP son cuatro: POST (crear), GET (leer y consultar), PUT (editar) y DELETE (eliminar). ● Los objetos en REST siempre se manipulan a partir de la URI.
  • 18.
    ¿Cómo vamos amontar nuestra API Rest? Express. Framework de Node diseñado para crear aplicaciones web y API. ● Manejo específico de diferentes verbos HTTP ● Gestión separada de las peticiones por medio URL (routes) ● Servicio de ficheros estáticos ● Configuración de plantillas ● Alternativas: adonis.js, Nest
  • 19.
    ¿...y los datos? MongoDBAlmacén de documentos (JSON)
  • 20.
    Algo de teoría...Relacionalvs No Relacional SQL NoSQL Integridad de datos (exactitud y consistencia) Cada dato tiene un tipo definido No se exige definir el tipo de datos que vas a almacenar. Operaciones atómicas (un cambio que afecta a múltiples entidades) Atomicidad mediante relaciones No existe relación, pero podemos usar referencias Escalabilidad Vertical Horizontal Velocidad - + Consistencia vs Redundancia Una única vez en toda la base de datos Repetir adrede los datos a conveniencia Comodidad para el desarrollador Madurez Prototipado
  • 21.
    ¿Cuándo? ● La velocidadde lectura y escritura es más importante que mantener la consistencia. ● No sabes cómo se verá la estructura de tus datos al final, y probablemente cambie mucho. ● Te es más fácil adquirir varias máquinas modestas a través del tiempo que invertir en una sola muy potente. ● Prefieres algo fácil de usar como programador, que no te exige compromisos y te deje almacenar casi cualquier cosa donde quieras.
  • 22.
    ¿...y los datos? ●Mongoose (ODM) ○ Definición de esquemas ○ Tipado (SchemaTypes) de atributos, atributos virtuales ○ Métodos de validación, indexado ○ Expresiones regulares ○ Funciones Get/Set
  • 23.