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:
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.
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:
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.