Die Fastapi -Route funktioniert lokal mit `/`, aber nicht auf Vercel (und umgekehrt)Python

Python-Programme
Anonymous
 Die Fastapi -Route funktioniert lokal mit `/`, aber nicht auf Vercel (und umgekehrt)

Post by Anonymous »

Ich habe ein Fastapi + Next.js -Projekt, das auf Vercel bereitgestellt wird.

Code: Select all

 from fastapi import APIRouter, Depends
from ..schemas.user import UserOut
from ..auth import require_admin
from ..repositories.users import list_users

user_router = APIRouter(prefix="/users", tags=["users"])

@user_router.get("/", response_model=list[UserOut])
def get_users(_: UserOut = Depends(require_admin)):
return list_users()
< /code>
Lokal (Uvicorn) < /p>
GET http://localhost:8001/api/users/< /code> funktioniert.
GET http://localhost:8001/api/users redirects to /users/
wie erwartet.

Code: Select all

GET https://myapp.vercel.app/api/users/< /code> → 500
GET https://myapp.vercel.app/api/users
404 oder .vercel.app/api/user/net :: err_too_many_redirects
Ich habe versucht, den Schrägstrich in der Routendefinition zu entfernen:

Code: Select all

@user_router.get("", response_model=list[UserOut])
def get_users(_: UserOut = Depends(require_admin)):
return list_users()
< /code>
Jetzt funktioniert es auf Vercel, fällt jedoch lokal aus (404)./api/db-check
und/api/_schema_status return ok). Vercel.json routes /api/(.*) → /api/index.py.
Frage
  • Warum gibt es diese Inkompatibilität zwischen lokaler und sachel. Vercel ohne Code ändern zu müssen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post