Como posso criar um endpoint usando o FastAPI e uvicorn usando o Google Colab?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Como posso criar um endpoint usando o FastAPI e uvicorn usando o Google Colab?
Oi Renata! Tudo bem?
Criar um endpoint usando FastAPI e uvicorn no Google Colab é um pouco diferente, pois o Colab é voltado para execução de notebooks e não é ideal para rodar servidores web diretamente. No entanto, é possível fazer isso com alguns ajustes.
Primeiramente temos que estabelecer algumas configurações do ngrok, que é o serviço que utilizaremos em vez do local, e ele requer que você tenha uma conta verificada e utilize um authtoken para autenticação. Para resolver isso, siga os seguintes passos:
Crie uma conta no ngrok:
Obtenha o authtoken:
Instalar as bibliotecas necessárias:
Após a configuração anterior, você precisa instalar o FastAPI e o uvicorn no seu notebook Colab. Você pode fazer isso usando o comando !pip:
!pip install fastapi uvicorn nest-asyncio pyngrok
Além do FastAPI e uvicorn, estamos instalando nest-asyncio e pyngrok para ajudar a rodar o servidor no Colab.
Configurar o FastAPI:
Em seguida, você pode criar seu aplicativo FastAPI. Vamos criar um arquivo main.py diretamente no notebook:
from fastapi import FastAPI
app = FastAPI()
@app.get('/api/hello')
def hello_world():
return {'Hello': 'World'}
Rodar o servidor:
O Google Colab não permite que você acesse diretamente o localhost, então vamos usar ngrok para expor o servidor local para a internet. Primeiro, vamos configurar o nest-asyncio e uvicorn para rodar no notebook:
import nest_asyncio
from pyngrok import ngrok
import uvicorn
nest_asyncio.apply()
authtoken = "TOKEN_AQUI" # Substitua pelo seu authtoken
ngrok.set_auth_token(authtoken)
# Expor o servidor local para a internet
public_url = ngrok.connect(8000)
print(f"Public URL: {public_url}")
# Rodar o servidor uvicorn
uvicorn.run(app, host='0.0.0.0', port=8000)
Quando você executar o código acima, ele irá iniciar o servidor FastAPI e fornecer uma URL pública através do ngrok que você pode usar para acessar o endpoint /api/hello.
Espero ter ajudado e bons estudos!