Introducción
- A quién está dirigido este libro
- Acerca de este libro
- Acerca del autor
- Agradecimientos
¿Que es un API?
- ¿Que es un API Web?
- Códigos y verbos HTTP
- REST API Web
Inicializar proyecto
Crear un Web Server
Herramientas de desarrollo
- Nodemon
- ESLint
- Visual Studio Code
Express JS
- Añadir Express JS
- Independizar la aplicación
Configuración y variables de entorno
- Cross-env
- Dotenv
Middleware para manejo de errores
- Express middleware
- Manejo de errores
Sistema de Logs
- Utilizar Winston para los logs
- Utilizar morgan para hacer logs de las peticiones
- Hacer seguimiento a las peticiones
- Añadir formato de la petición a los logs
Postman
Router y Routes de Express
- Definir las rutas con Route
- Manejo de versiones de API
Creando el layout del API
Capturar y procesar parámetros de las peticiones
- Capturar parametros por la URL
- Capturar datos desde formularios u objetos json
Patrones asincrónicos de JavaScript
- ¿Cual patrón utilizar?
- Callbacks
- Promises
- async / await
Bases de datos SQL y NoSQL
Instalando y configurando MongoDB
- Instalar MongoDB en el sistema operativo
- Utilizar MongoDB como un servicio Web
- Utilizar MongoDB en memoria
Conectando MongoDB
Mongoose Models
- Creando objetos en la base de datos
- Leyendo objetos de la base de datos
Procesar parámetros y respuestas
- Procesando parámetros comunes con middleware
- Estandarización de la respuesta
Mongoose Schemas
Administrar las colecciones de datos
- Paginación
- Ordenamiento
Administrar recursos
- Relaciones entre recursos
- Crear nuevos recursos
- Añadir recursos anidados
Administrar usuarios
- Añadir y remover campos de un documento
- Cifrar contraseña
- Autenticación
- Manejo de sesión con tokens
- Autorización
Validaciones
- Crear validaciones personalizadas
- Limpieza de campos
Seguridad
- Restricción de las peticiones
Pruebas
- Configuración de pruebas
- Pruebas unitarias
- Pruebas de integración
Documentación
- Swagger
- Swagger UI
- JS Doc
- JS Doc con Swagger UI en Express
- Documentando las rutas y creando los modelos
- Definiciones de modelo
- Tipos de parámetros y valores de ejemplo
- Parámetros en la ruta