Estou tentando criar um token com FastAPI:
> import json
> import os
> import aiohttp
> import asyncio
> from fastapi import FastAPI
> from fastapi import APIRouter, Request
> from fastapi.responses import JSONResponse
>
> token = APIRouter(prefix="/management/api", tags=["API Apl token"])
>
> app=FastAPI()
> app.include_router(token)
e muitos métodos depois...
Eu consegui isso
> uvicorn peg:token --reload
> INFO: Will watch for changes in these directories: ['C:\\Users\\Ejbc25\\fastapi']
> INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
> INFO: Started reloader process [2232] using StatReload
> INFO: Started server process [20632]
> INFO: Waiting for application startup.
> INFO: Application startup complete.
> INFO: 127.0.0.1:51183 - "GET / HTTP/1.1" 404 Not Found
> INFO: 127.0.0.1:51183 - "GET / HTTP/1.1" 404 Not Found
Como corrigir esse problema?
Eu esperava que http://127.0.0.1:8000/token retornasse o token, mas mostra
Não encontrado
O motivo do seu problema é que você está tentando executar uma
APIRouter
instância FastAPI (token
) diretamente comuvicorn
, em vez doFastAPI
aplicativo real (app
).Seu
uvicorn
comando:está tentando iniciar o aplicativo usando o
token
roteador como o aplicativo principal, o que não funcionará, poistoken
não é um aplicativo FastAPI (é apenas um roteador criado para ser incluído em um aplicativo).Você deve apontar
uvicorn
para a instância realFastAPI
, que no seu código é chamada deapp
. Altere seu comando para:Obviamente, estou assumindo que seu arquivo se chama
peg.py
, mas se ele tiver um nome diferente, atualize o comando (por exemplo,uvicorn main:app --reload
formain.py
).