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

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Die Fastapi -Route funktioniert lokal mit `/`, aber nicht auf Vercel (und umgekehrt)

by Anonymous » Yesterday, 02:26

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?

Top