/kaitinder

Express app para el workshop de node

Workshop API Node.js & Express

¿Por qué este workshop?

El objetivo del taller es aprender a crear un API Rest con Node.js y Express. Construiremos nuestros endpoints validados y testeados correctamente. Utilizaremos una base de datos MongoDB en la nube y conectaremos con servicios de terceros para obtener cierta información. Todo ello intentando aplicar buenas prácticas de desarrollo y testing. Vamos a preparar la api para un “kairosTinder”

Requisitos

Javascript nivel básico. Será necesario tener instaladas las siguientes herramientas antes del inicio del taller. Si tienes alguna duda puedes contactar directamente con cualquiera de los profesores que te ayudarán a tenerlo todo listo.

¿Quienes somos?

  • Beatriz de Miguel (beatriz.demiguel@kairosds.com) Programadora front desde hace 6 años y desde hace 1 año más enfocada en el mundo backend.

  • Víctor Pose (victor.pose@kairosds.com) Desarrollador con más de 5 años de experiencia en Back, tanto con Node.js como con Java.

Antes de empezar

Conoce la estructura básica de un proyecto backend:

alt text

Elementos:

  • Rutas: donde se conecta qué controladores o middlewares ejecutar para una petición HTTP.
  • Controladores: donde se ubican las funciones o middlewares que sepan responder a las peticiones.
  • Middlewares: donde se ubican las funciones que se encargarán de preprocesar o postprocesar los datos de las peticiones HTTP, por ejemplo, la autentificación de usuarios, validación de datos entre otros.
  • Dominio: donde se define la lógica de negocio
  • Datos: donde se definen los modelos que permitirán manipular la base de datos

¿Cómo es un proyecto con expressJS?

Puesta en marcha

Ya puedes cambiar a la rama challenge-0 y hacer el challenge

Endpoint básico que conecta con Mongo

¿Qué es un ODM?

Es una librería de modelado, que nos permita manipular la base de datos sin necesidad de conocer mongodb a fondo. Hay tareas repetitivas que controlar como la inserción, la búsqueda, la conexión, evitar inyección de código malicioso, mapear los datos de la base a modelos, etc. Estas tareas y más son las que conforman normalmente un ORM (Object-Relational mapping).

Ya puedes cambiar a la rama challenge-1 y hacer el challenge

Patrón middleware y filtros con Mongo

Ya puedes cambiar a la rama challenge-2 y hacer el challenge

Test de integración del Api con supertest

Ya puedes cambiar a la rama challenge-3 y hacer el challenge

Refactoring y estructura de proyecto

Ya puedes cambiar a la rama challenge-4 y hacer el challenge

Conexión con Apis externas.

Ya puedes cambiar a la rama challenge-5 y hacer el challenge

Documentación de api: