O quê é FastAPI?
FastAPI é um framework python moderno, rápido (alta performance) para desenvolvimento de API's com Python 3.6+, e baseado em type hints do Python. Seu criador o define como:
"Framework de alta performance, fácil de aprender, codificar e fazer seu deploy."
Para contextualizar, é interessante comentar quais são as outras ferramentas desse "segmento", as mais populares:
- Django REST Framework
- Flask
A intenção desse post é mostrar um pouco desse framework python, e também mostrar como é simples criar uma API com FastAPI.
Características do FastAPI:
- Performance: Extremamente eficiente, comparável com NodeJS e Go (graças ao Starlette, e o Pydantic). Um dos frameworks mais performáticos em Python disponível
- Intuitivo: Suporte ideal pelo editor/IDE. Orientado aos type hints faz com quê o code complete seja perfeito.
- Debug: Menor tempo de debug, devido ao suporte do code complete, e do traceback.
- Baseado em padrões: Baseado e compatível com os padrões abertos para API'S: OpenAPI e JSON Schema
- SwaggerUI: Uma interface de documentação interativa para APIs.
- ReDoc: Alternativa ao SwaggerUI.
- Entre outros..
Criando um ambiente virtual
Você também pode utilizar outro gerenciador de pacotes/dependências em Python, como o Poetry, mas nessa introdução usarei o pip.
Linux e MacOS
python3 -m venv venv
source venv/bin/activate
Windows
python -m venv venv
./venv/Scripts/activate
Lembre-se que você precisa ter configurado o Windows para executar scripts remotos, ou a politica de execução de scripts. saiba mais.
Instalação
pip install fastapi
Você também precisará de um servidor ASGI:
pip install uvicorn
Criando a API
Agora que o ambiente está configurado, e as dependências instaladas, it's time to code!
- Crie um arquivo
main.py
:
from fastapi import FastAPI
app = FastAPI()
@app.get('/')
def say():
return {"message": "Hello World!"}
Iniciando a aplicação:
Com o uvicorn instalado:
uvicorn main:app --reload
main = módulo/arquivo do python
: = separador, indica que usará alguma variável/função/classe/objeto
app = objeto de instância do FastAPI
--reload = função do uvicorn para escutar alterações no código e reiniciar a aplicação.
Resultados:
Web:
Documentação
SwaggerUI:
Podemos executar as requisições através dessa página, como no exemplo abaixo:
ReDoc:
Observações finais
FastAPI é um framework extremamente leve, rápido e fácil. O deploy é muito simples, e as IDEs/Editores de texto fornecem ao máximo o code complete pra ajudar o desenvolvedor a se virar.
Com FastAPI podemos customizar quase toda a página de documentação de forma automática, podemos determinar as models de retorno no JSON Schema e o FastAPI fará automaticamente a validação dos dados, retornando erro caso haja alguma diferença.
That's it! É claro que o exemplo acima não é nada comparado ao que o framework oferece, mas tentarei trazer conteúdos que irão abranger todo o ecossistema desse framework.
Saiba mais
Referências
Notou o FastAPI * em negrito? Eu entendi a referência.*
Top comments (0)