Saltar a contenido

CORS - Cross Origin Resource Sharing

Código

main.py
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel


class User(BaseModel):
    username: str


app = FastAPI()

origins = [
    "http://localhost.tiangolo.com",
    "https://localhost.tiangolo.com",
    "http://localhost",
    "http://localhost:8080",
    "https://fastapiworkshop.yaquelinehoyos.com",
]

app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)


@app.post("/users/")
def create_user(user: User):
    return user


@app.get("/users/")
def read_users():
    return [{"username": "Rick"}, {"username": "Morty"}]


@app.get("/users/{user_id}")
def read_user(user_id: int):
    return {"id": user_id, "username": "Pickle Rick"}

Servidor

Ejecuta el servidor en vivo:

$ uvicorn main:app --reload

<span style="color: green;">INFO</span>:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
<span style="color: green;">INFO</span>:     Started reloader process [28720]
<span style="color: green;">INFO</span>:     Started server process [28722]
<span style="color: green;">INFO</span>:     Waiting for application startup.
<span style="color: green;">INFO</span>:     Application startup complete.

Docs del API

Ahora puedes abrir los docs del API en: http://127.0.0.1:8000/docs.

Panel Administrativo

Puedes ir al panel administrativo (creado para este workshop) para interactuar con tu API: https://fastapiworkshop.yaquelinehoyos.com.

Info

Este panel administrativo fue creado en un día para este taller por @yaquelinehoyos. 🤓

¡Gracias Yaque! 🙇