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รญ ๐Ÿ‘