Desenvolvimento Back-endPython

O que é FastAPI?

O que é FastAPI? Quando falamos de frameworks para o desenvolvimento web no ecossistema Python o primeiro nome que vem à cabeça é quase sempre Django ou então o Flask, porém o ecossistema Python é bem rico e possui muitos outros frameworks voltados para o desenvolvimento de API’s, um deles é o FastAPI, que é relativamente novo e que vem ganhando um número cada vez maior de entusiastas. Neste artigo vamos falar um pouco sobre o funcionamento e quais as características desse framework.

O que é FastAPI?

O FastAPI é um framework Python focado no desenvolvimento de API’s, tem como principais características ser moderno, rápido e simples. É um framework relativamente novo, teve a sua primeira versão lançada no dia 15 de Novembro de 2018, mas não se engane, apesar de ser novo ele não é inferior aos outros frameworks que já estão no mercado há mais tempo, como o Django ou o Flask.

Um pouco da história do FastAPI

O FastAPI foi desenvolvido e atualmente é mantido por Sebastián Ramírez, o mesmo diz no próprio site do framework que teve a ideia de criar o FastAPI a partir de algumas dificuldades encontradas ao utilizar os frameworks que existiam na época para realizar a tarefa de desenvolver API’s, além de que na maioria das vezes esses frameworks não possuíam o suporte para os recursos mais modernos do Python, como o recurso de type hints por exemplo.

Principais características

Levando a motivação de criação do framework em consideração já dá para imaginar que ele toma vantagem dos recursos mais modernos disponibilizados pelo Python, outro ponto interessante é que justamente pelo fato de ser um framework recente ele pôde ser desenvolvido já levando em consideração os erros e acertos de outros frameworks que já estão no mercado há mais tempo.

Os principais recursos do FastAPI são:

  • Rápido: API’s desenvolvidas com o FastAPI possuem uma alta performance, ao ponto de serem comparadas com API’s desenvolvidas com Node.js e Go. Inclusive é considerado um dos frameworks Python mais rápidos, perdendo apenas para o Starlette e o Uvicorn, que são frameworks utilizados internamente pelo FastAPI;
  • Intuitivo: O código fonte do framework foi inteiramente desenvolvido utilizando o recurso de type hints do Python, isso possibilita que as IDE’s e Editores de Código Fonte possuam um melhor intellisense, fazendo assim com que se gaste menos tempo debugando o código.
  • Fácil: Foi inteiramente pensado para ser fácil de usar e aprender, fazendo assim com que se gaste bem menos tempo lendo a documentação.
  • Robusto: O código desenvolvido já está pronto para produção, assim não precisamos fazer nenhuma alteração para então colocar as aplicações desenvolvidas no ar, além de que o FastAPI gera a documentação utilizando o Swagger e o OpenAPI de forma automática.

Preparando nosso ambiente para usarmos o FastAPI

Agora vamos ver um exemplo simples de como se parece o código de uma aplicação desenvolvida com FastAPI, lembrando que o FastAPI precisa do Python pelo menos na versão 3.6.

Vou levar em consideração que você já possui o Python corretamente instalado em sua máquina, caso não, recomendo a leitura do artigo Instalação do Python e nosso primeiro Olá Mundo, onde é mostrado todo o processo de instalação da linguagem.

Inicialmente vamos criar uma nova pasta e um ambiente virtual para que possamos isolar nosso ambiente de desenvolvimento da instalação global do Python, para isso execute os seguintes comandos no terminal:

mkdir exemplo-fastapi
cd exemplo-fastapi
python -m venv .venv

O primeiro comando serve para criar uma pasta chamada exemplo-fastapi que será a pasta do nosso projeto, logo em seguida utilizamos o comando cd para entrar nessa pasta e por fim utilizamos o comando python -m venv .venv para criar um novo ambiente virtual.

Agora que temos o nosso ambiente virtual criado nós precisamos ativa-lo, a ativação do ambiente virtual tende a mudar dependendo do seu sistema operacional, caso esteja utilizando Linux ou MacOS execute o seguinte comando:

source .venv/bin/activate

Caso esteja no Windows execute o seguinte comando:

.venv\Scripts\activate

Caso após a execução do comando acima tenha aparecido o texto (.venv) no seu terminal, significa dizer que deu tudo certo. Agora precisamos instalar o FastAPI e também iremos precisar de um servidor ASGI para podermos executar a aplicação, pois o FastAPI não possui um servidor integrado. Como servidor vamos utilizar o Uvicorn que é recomendado pela própria documentação.

Execute os comandos abaixo para realizar a instalação do FastAPI e do Uvicorn:

pip install fastapi
pip install uvicorn[standard]

Criando nossa primeira aplicação com FastAPI

Agora que já temos tudo instalado vamos criar o nosso exemplo, para isso abra a pasta exemplo-fastapi na IDE ou Editor de Código Fonte de sua sua preferência e crie um novo arquivo chamado main.py com o seguinte código:

from fastapi import FastAPI

app = FastAPI()

@app.get(“/”)
def home():
return {“mensagem”: “Hello World”}

Para quem já está familiarizado com o Flask vai notar algumas semelhanças, mas como disse o FastAPI se baseou nos erros e acertos de outras frameworks e do Flask o FastAPI se inspirou justamente na simplicidade.

Agora para rodarmos a aplicação basta executar o comando:

uvicorn main:app –reload

Agora você pode abrir o seu navegador no endereço http://localhost:8000/ e verá o seguinte resultado:

Print do navegador demonstrando a execução da aplicação desenvolvida em FastAPI

Além de ser super fácil de criarmos nossas rotas e retornamos dados do tipo JSON, o FastAPI também gera toda uma documentação utilizando o OpenAPI de forma automática, para ver essa documentação acesse o endereço http://localhost:8000/docs e você verá a documentação da API fornecida pelo Swagger UI.

Print da documentação com Swagger UI gerada de forma automática pelo FastAPI

Além da documentação com o Swagger UI o FastAPI também disponibiliza uma documentação alternativa através da ferramenta ReDoc, para visualizar essa outra documentação acesse http://localhost:8000/redoc e você verá o seguinte resultado:

Print da documentação com ReDoc gerado de forma automática pelo FastAPI

Conclusão

Neste artigo vimos um pouco sobre o que é e qual a história do FastAPI, é um framework muito interessante, que possui diversos recursos modernos e que vem ganhando bastante popularidade nos últimos anos e essa popularidade só tende a crescer, caso queira aprender mais sobre o FastAPI recomendo ler a documentação do framework, que é muito boa e recheada de exemplos.