Nest JS
Desarrollo de Backend
Ing. Dario chamorro
Tech Lead Mercado Libre
¿Qué hacer hoy en
Pasto?
¿Qué eventos hay esta semana o mes?
¿Qué planes puedo encontrar ?
¿Dónde encuentro la información ?
¡ Pasto Hoy !
¿Cómo conseguimos información?
Esquema Cliente - Servidor
Servidor
Realiza un procesamiento o lógica
Servicio Almacena datos e información de
Lógica forma fiable en base de datos
Expone la lógica o procesos a
través de servicios
Presta un Servicio
Acceso a Datos
Base de Datos
¿Cómo Consumimos información?
Esquema Cliente - Servidor
Cliente
Interfaz Grafica
Realiza una lógica de negocio
Almacenar datos locales
Lógica
Solicita un servicio al servidor
Expone la información en la
Interfaz Grafica de Usuario
Acceso a
Solicitar
Datos Consume un Servicio
Base
Datos
Cliente - Servidor
Interfaz Grafica Request
Lógica Servicio
Lógica
Response
Acceso a HTTP
Solicitar Acceso a Datos
Datos
Base
Datos
Base de Datos
Request
MÉTODO PATH HEADERS BODY
GET /events Authorization = Bearer {Token} ---
Obtener todos los eventos activos de pasto
Request
MÉTODO PATH HEADERS BODY
GET /events?limit=50&order=desc Authorization = Bearer {Token} ---
Obtener todos los eventos activos de pasto
Los últimos 50 en orden descendente
Request
MÉTODO PATH HEADERS BODY
POST /plans Authorization = Bearer {Token} {
"name": "Tour Cafe",
"description": "...",
"items": [
{…}
]
Agregar un plan
}
Request
MÉTODO PATH HEADERS BODY
PUT /event/123 Authorization = Bearer {Token} {
"name": "Rock Carnaval",
"description": "...",
"date": "2023-07-08"
}
Actualizar un plan
Request
MÉTODO PATH HEADERS BODY
DELETE /plan/1345 Authorization = Bearer {Token}
Eliminar un plan
Response
CODE BODY
200 - Success
{
4xx - Error del Cliente "name": "Tour Cafe",
"description": "...",
400 - Invalid Input "items": [
401 - No Autorizado
403 - No Permitido
{…}
404 - No encontrado ]
}
5xx - Error del Servidor
500 - Error interno
501 - No Implementado
503 - No Disponible
Base de datos
Stack Backend
Lógica - End Points
Almacenamiento
¿Que escoger?
- Curva de aprendizaje
- Comunidad
- Lenguaje
- Facilidad
- Mantenimiento
- Performance
- Costos
Un Stack Interesante
Lógica - End Points Cache Base de datos
¡ Pasto Hoy !
Cliente Móvil Client Admin
Flutter Angular
NestJs
Base de Datos
NestJS
Cliente NestJs Mongo DB
Request
Captura el
Controller Request
Respuesta Procesa
Respuesta
Consulta la info
Service
Info
NestJS
Componentes
Controllers Services Middleware Modulos
➔ Capturan los ➔ Logica de ➔ Logica que se ➔ Conjunto de
request negocio invoca al llegar Controllers y
un request y Services
➔ Devuelven la ➔ Consumo de antes del
respuesta al datasources controller
cliente
➔ Se pueden
encadenar
¿Qué sigue después?
- Login con Firebase Authentication
- Implementar Planes
- Agregar Redis para cache de información