DEV Community

Cover image for Introdução e criação de uma API com FastAPI
Urich Oliveira
Urich Oliveira

Posted on

Introdução e criação de uma API com FastAPI

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
Enter fullscreen mode Exit fullscreen mode

Windows

python -m venv venv
./venv/Scripts/activate
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Você também precisará de um servidor ASGI:

pip install uvicorn
Enter fullscreen mode Exit fullscreen mode

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!"}
Enter fullscreen mode Exit fullscreen mode

Iniciando a aplicação:

Com o uvicorn instalado:

uvicorn main:app --reload
Enter fullscreen mode Exit fullscreen mode

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:

Requisição feita através do Postman

Documentação

SwaggerUI:

Página do SwaggerUI
Podemos executar as requisições através dessa página, como no exemplo abaixo:

Página do SwaggerUI, com a requisição de teste executada

ReDoc:

Página do 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)