Curso en el que aprenderemos a utilizar Python para backend e implementaremos un API REST con autenticación, base de datos y desplegaremos el proyecto en un servidor real.
¿Que es un BACKEND?
Es todo lo que se encientra ejecutando en un servidor. Las API se hacen a nivel de Backend.
- El backend es la parte de una aplicación web o de software que se encarga de gestionar la lógica del negocio, la base de datos, y las operaciones del servidor.
Un API es un standard o canal de comunicacion entre el Frontend y el Backend.
¿Que framework utilizaremos para BACKEND?
FastAPI es un framework moderno y de alto rendimiento para construir APIs web con Python 3.6+ basado en las características estándar de Python como las anotaciones de tipo.
-
Alto Rendimiento: Está diseñado para ser uno de los frameworks más rápidos disponibles para Python, comparable en rendimiento a Node.js y Go.
-
Basado en Tipado Estático: Utiliza las anotaciones de tipo de Python para definir y validar datos, lo que mejora la experiencia de desarrollo y reduce errores.
-
Documentación Automática: Genera automáticamente documentación interactiva de la API con Swagger UI y ReDoc. Esto es especialmente útil para probar y comprender rápidamente la API.
-
Asíncrono: Soporta programación asíncrona utilizando async y await, lo que permite manejar muchas solicitudes concurrentes de manera eficiente. Ademas de esto tambien soporta programacion sincrona, tiene soporte para ambos tipos.
-
Facilidad de Uso: Es fácil de aprender y usar, con una sintaxis intuitiva y un diseño que promueve las mejores prácticas.
-
Validación de Datos: Integra Pydantic para la validación de datos y la serialización, asegurando que los datos recibidos y enviados a través de la API cumplan con los esquemas definidos.
- Definición básica : Un token es un "objeto" (puede ser numérico, alfanumérico o hexadecimal) que actúa como un identificador temporal o permanente para algo.
- Por ejemplo: Un "ticket" para acceder a un servicio. Una "llave" que permite realizar una acción específica. Un "código" que representa una sesión de usuario.
-
Autenticacion: significa que el sistema conoce el usuario que a ingresado. Por ejemplo, cuando voy a YT y procedo a iniciar secion ingresando mi usuario y contraceña, lo que estoy haciendo es, que me estoy autenticando en dicha plataforma, es decir que la platafoma identifica que tal usuario ha hecho login y que puede empezar a hacer ciertas cosas.
-
Autorización: significa que el sistema da permisos especiales a cada usuario para acceder a ciertos aspectos/herramentas del sistema que solo pueden ser utilizadas de forma individual para cada usuario, Es decir, que cada usuario tiene persisos para operar sobre su informacion, pero no sobre la de los demas usuarios. (exisaten muchos tipos de autorizacion, que otorgan diferentes permisos)
(encriptación) JWT = Json Web Token
MongoDB es la base de datos no relacional más utilizada del mundo. Funcionamiento: basicamente lo que se tiene son documentos con texto, dicho texto tiene un formato definido(por ej, .json), con el fin de que se puedan operar de forma independiente, que no necesiten una relacion entre documentos para que funcionen o tengan sentido, esto permite que dichas bases de datos ocupen muy poco espacio, que tengan una respuesta muy rápida... {una analogia que se puede hacer es que, este tipo de bases de datos son como directorios que tienen en su interior documentos que pueden acabar representando datos}
