Guía de Instalación de FastAPI: CRUD Completo en Python | Comparativa con Django REST y ExpressJS 🚀🚀🚀🚀🚀🚀

Posted by


En este tutorial, aprenderás cómo instalar FastAPI, un framework web de Python para construir APIs rápidas y eficientes, y cómo implementar un CRUD completo utilizando FastAPI. Además, compararemos FastAPI con Django REST y ExpressJS para que puedas elegir la mejor opción para tu proyecto.

¿Qué es FastAPI?

FastAPI es un framework web de Python moderno y rápido para construir APIs. Está inspirado en Flask y está diseñado para ser fácil de usar, rápido y eficiente. FastAPI utiliza Python 3.7+ y type hints para proporcionar una interfaz de usuario limpia y fácil de entender.

FastAPI es conocido por su rapidez y eficiencia. Utiliza asincronía y paralelismo para hacer que las aplicaciones sean más rápidas y escalables. Además, FastAPI genera automáticamente documentación interactiva para tus APIs basada en los tipos de datos y las anotaciones de las rutas.

Comparativa entre FastAPI, Django REST y ExpressJS:

FastAPI es un framework web de Python rápido y eficiente para construir APIs. En comparación con Django REST y ExpressJS, FastAPI es más rápido y eficiente. FastAPI utiliza asincronía y paralelismo para hacer que las aplicaciones sean más rápidas y escalables. Además, FastAPI utiliza type hints para proporcionar una interfaz de usuario limpia y fácil de entender.

Django REST es un framework web de Python para construir APIs. Django REST es más maduro y tiene una gran comunidad de usuarios. Sin embargo, FastAPI es más rápido y eficiente que Django REST debido a su capacidad de hacer que las aplicaciones sean más rápidas y escalables.

ExpressJS es un framework web de JavaScript para construir APIs. ExpressJS es rápido y eficiente, pero FastAPI es aún más rápido y eficiente debido a su uso de asincronía y paralelismo. Además, FastAPI proporciona documentación interactiva para tus APIs de forma automática, lo cual es muy útil para desarrolladores.

Instalación de FastAPI:

Para instalar FastAPI, primero debes asegurarte de tener Python 3.7+ instalado en tu sistema. Puedes comprobar la versión de Python que tienes instalada utilizando el siguiente comando:

python --version

Una vez que tengas instalado Python 3.7+, puedes instalar FastAPI y Uvicorn, un servidor web ASGI, utilizando pip, el gestor de paquetes de Python. Para instalar FastAPI y Uvicorn, ejecuta el siguiente comando:

pip install fastapi uvicorn

Una vez que hayas instalado FastAPI y Uvicorn, puedes crear una aplicación FastAPI básica y ejecutarla utilizando el siguiente código:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

Para ejecutar tu aplicación FastAPI, utiliza el siguiente comando:

uvicorn nombre_de_tu_archivo:app --reload

Ahora puedes acceder a tu API en http://localhost:8000. Si visitas http://localhost:8000/docs, podrás ver la documentación interactiva de tu API generada automáticamente por FastAPI.

Implementación de un CRUD completo con FastAPI:

Para implementar un CRUD completo con FastAPI, primero debes definir tus modelos de datos utilizando Pydantic, una librería de serialización y validación de datos. Luego, debes definir las rutas para las operaciones CRUD utilizando FastAPI.

Aquí tienes un ejemplo de cómo implementar un CRUD completo con FastAPI para una entidad de usuarios:

  1. Define tu modelo de datos utilizando Pydantic:
from pydantic import BaseModel

class User(BaseModel):
    id: int
    name: str
    email: str
  1. Crea una lista de usuarios para simular una base de datos:
from typing import List

users = []
  1. Define las rutas para las operaciones CRUD utilizando FastAPI:
from fastapi import APIRouter

router = APIRouter()

@router.post("/users/", response_model=User)
def create_user(user: User):
    user.id = len(users) + 1
    users.append(user)
    return user

@router.get("/users/", response_model=List[User])
def read_users():
    return users

@router.get("/users/{user_id}", response_model=User)
def read_user(user_id: int):
    return next((user for user in users if user.id == user_id), None)

@router.put("/users/{user_id}", response_model=User)
def update_user(user_id: int, user: User):
    index = next((index for index, user in enumerate(users) if user.id == user_id), None)
    if index is not None:
        users[index] = user
        return user

@router.delete("/users/{user_id}")
def delete_user(user_id: int):
    index = next((index for index, user in enumerate(users) if user.id == user_id), None)
    if index is not None:
        del users[index]
  1. Monta las rutas en tu aplicación FastAPI principal:
from fastapi import FastAPI
from .router import router

app = FastAPI()
app.include_router(router)

Con esto, has implementado un CRUD completo con FastAPI para una entidad de usuarios. Puedes probar las operaciones CRUD utilizando un cliente de API como Postman o cURL.

Conclusión:

En este tutorial, aprendiste cómo instalar FastAPI y cómo implementar un CRUD completo utilizando FastAPI. Además, comparamos FastAPI con Django REST y ExpressJS para que puedas elegir la mejor opción para tu proyecto.

FastAPI es un framework web de Python rápido y eficiente para construir APIs. Utiliza asincronía y paralelismo para hacer que las aplicaciones sean más rápidas y escalables. Además, FastAPI genera automáticamente documentación interactiva para tus APIs basada en los tipos de datos y las anotaciones de las rutas.

Si estás buscando un framework web de Python rápido y eficiente para construir APIs, te recomiendo que pruebes FastAPI. ¡Espero que este tutorial haya sido útil para ti y te ayude a empezar a trabajar con FastAPI!

0 0 votes
Article Rating
9 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@albertoborella2497
30 days ago

Marcelo, estuve fijándome y otra alternativa para borrar un registro de la lista podría ser utilizando el metodo remove(post) al cual le pasaríamos el elemento a eliminar, y no haría falta crear el index. Me había quedado la duda, lo probé y funcionó. Ahora si, ansioso por trabajar FastAPI con bases de datos reales.

@albertoborella2497
30 days ago

Marcelo, realmente estoy fascinado con este framework de FastApi, que por supuesto explicado por vos se ve mas genial aún. Yo me anoto para seguir con entusiasmo los videos con todas las bd. Y también estaría interesante, ya que estuve viendo algo de que se puede agregar también plantillas como para integrarlo también con la parte del front. Un saludo.

@kristianrincon1576
30 days ago

Me encanto el video, sabia de la existencia de FastAPI pero no le había dado la oportunidad pensaba que seria similar a DJango e inclusive mas complicado, ahora veo el potencial que puede tener este framework. Sí me gustaría ver la integración con MySql.

@albertoborella2497
30 days ago

Extraordinario fastAPI. Minimalista como lo es flask, aunque el hecho de tener la doc integrada es buenísimo. Adelante con los próximos videos y felicitaciones por brindarnos tantos conocimientos. Felicitaciones.

@Emanuel-id9pk
30 days ago

Genio muchas gracias

@agdsys
30 days ago

saludos Marcelo, excelente viedeo y que simple se denota el control de cada una de los end-points, estoy impresionado del alcance y lo facil que es crear una bateria de apis, con relacion a la propuesta yo me apunto a todos los motores de base de datos propuestos en este video, si te es posible podrias incluir: un poco de seguridad de acceso al momento de ejecutar un endpoint, drf utiliza un token para poder acceder, con fastapi tambien podria tener algo similar y por ultimo preguntar si en lugar de uvicorn puedo usar daphne, felicitaciones una vez mas por tan buena aportacion a la comunidad y como siempre un saludo desde la bella Guatemala

@jeanpierv.1728
30 days ago

El profe tiene mucho potencial.

@eleazarmartimez2757
30 days ago

Si seria genial que tambien lo hiciera con MySQL

@eleazarmartimez2757
30 days ago

Excelente usted explica muy bien muchas gracias por compartir su conocimiento desde hace rato queria aprender fastApi pero no les entendía pero este video lo entendí 👍