Skip to content

Capítulo 3.1: Instalação do FastAPI e Configuração do Ambiente

Tempo de estudo: 45 minutos


1. O que é FastAPI? O Hipermotor para APIs

Se Flask é uma sonda de reconhecimento manobrável e Django é uma enorme nave-mãe, então FastAPI é um caça supersônico.

FastAPI é um framework web moderno e de alto desempenho para a criação de APIs em Python 3.7+. Suas principais vantagens são:

  • Velocidade: Um dos frameworks Python mais rápidos, comparável a NodeJS e Go.
  • Simplicidade: Sintaxe minimalista e intuitiva.
  • Auto-documentação: Gera automaticamente documentação interativa para sua API.
  • Tipagem: Utiliza dicas de tipo padrão do Python para validação, autocompletar e documentação.

💡 Analogia Espacial:

FastAPI é como o "hipermotor" para sua nave-API. Ele é baseado em duas tecnologias:

  • Starlette (chassi do caça) — oferece assincronicidade e altíssimo desempenho.
  • Pydantic (computador de bordo) — responsável pela validação de dados e configurações.

2. Preparando a Plataforma de Lançamento: Ambiente Virtual

Antes de construir nosso caça, precisamos criar um laboratório de montagem estéril. Em Python, isso é feito usando ambientes virtuais.

Por que isso é necessário? Para que as dependências do nosso projeto (motores, sistemas de navegação) não entrem em conflito com outros projetos no seu computador.

Passo 1: Criando o ambiente virtual Abra o terminal na pasta do seu projeto (por exemplo, C:\Projects\FastAPI_Fleet) e execute:

python -m venv venv
Este comando criará uma pasta venv com uma versão isolada do Python.

Passo 2: Ativando o "campo de força" do laboratório

  • Windows (PowerShell):

.\venv\Scripts\Activate.ps1
(Se ocorrer um erro, talvez seja necessário permitir a execução de scripts: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process)

  • Windows (CMD):
.\venv\Scripts\activate.bat
  • macOS / Linux:

source venv/bin/activate
Após a ativação, (venv) aparecerá no início da linha do terminal. Isso significa que você está dentro do seu laboratório!


3. Instalação do Motor: FastAPI e Uvicorn

Agora vamos instalar dois componentes chave:

  • fastapi: O próprio framework.
  • uvicorn: Um servidor ASGI ultrarrápido que irá "ligar" nosso motor.

Execute no ambiente ativado:

pip install "fastapi[all]"

💡 Por que [all]? Isso instalará fastapi, uvicorn e outros pacotes úteis (por exemplo, para suporte a websockets e Jinja2), que serão úteis em missões futuras.

Verificação da instalação:

pip freeze
Você deverá ver fastapi, pydantic, starlette, uvicorn e outros pacotes na lista.


4. Primeiro Contato: O Arquivo main.py

Crie um arquivo main.py na raiz do projeto — este será o painel de controle central da nossa API.

Adicione o seguinte código a main.py:

from fastapi import FastAPI

# Criamos uma instância da nossa "nave espacial" API
app = FastAPI()

# Definimos o primeiro "nó de acoplagem" (endpoint)
# Este é o URL raiz: /
@app.get("/")
def read_root():
    """
    Esta é a mensagem do Centro de Comando, visível para todos
    que se conectam à porta principal.
    """
    return {"message": "Bem-vindo ao Centro de Comando da Frota Espacial!"}
- @app.get("/"): Este é um decorador que informa ao FastAPI que a função read_root deve lidar com requisições GET para o URL raiz (/).


5. Ignição! Iniciando o Servidor

Chegou a hora de ligar nosso hipermotor! No terminal (com o venv ativo), execute:

uvicorn main:app --reload
Decodificação do comando:

  • uvicorn: Iniciamos o servidor Uvicorn.
  • main: O arquivo main.py (sem o .py).
  • app: O objeto app = FastAPI(), criado dentro de main.py.
  • --reload: "Piloto automático". O servidor será reiniciado automaticamente a cada alteração no código.

Saída esperada no terminal:

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [12345]
INFO:     Started server process [12346]
INFO:     Waiting for application startup.
INFO:     Application startup complete.


6. Verificação de Conexão com o Centro de Comando

Sua API está agora online e escutando na porta 8000!

Passo 1: Verificação no navegador

Abra o endereço http://127.0.0.1:8000 no navegador. Você deverá ver:

{
  "message": "Bem-vindo ao Centro de Comando da Frota Espacial!"
}

Passo 2: Olhando para o futuro (auto-documentação)

FastAPI já criou dois presentes para você. Abra estes URLs:

  • http://127.0.0.1:8000/docs: Documentação interativa Swagger UI.
  • http://127.0.0.1:8000/redoc: Documentação alternativa ReDoc.

Você verá seu primeiro endpoint, que pode ser testado diretamente do navegador!


Quiz para Fixação

1. FastAPI é conhecido por sua...

2. Para que serve um ambiente virtual (`venv`)?

3. Qual servidor é usado para iniciar o FastAPI nesta lição?

4. O comando `uvicorn main:app --reload` significa:

5. O que o decorador `@app.get("/")` faz no FastAPI?


🚀 Resumo do Capítulo:

Você montou e iniciou com sucesso o "hipermotor" da sua nova API! Agora você tem: - 🛠️ Ambiente de desenvolvimento isolado (venv) - 🚀 FastAPI e servidor Uvicorn instalados - 🛰️ API em funcionamento com um endpoint - 📊 Documentação gerada automaticamente

Todos os sistemas em ordem! No próximo capítulo, criaremos nosso primeiro endpoint completo, que retornará uma lista de naves espaciais.

📌 Verificação:

  • No terminal, o ambiente (venv) está ativo
  • O servidor uvicorn está rodando sem erros
  • O endereço http://127.0.0.1:8000/docs abre no navegador

⚠️ Em caso de erros:

  • command not found: Certifique-se de que ativou o ambiente virtual.
  • Port ... is already in use: Outro programa está usando a porta 8000. Pare-o ou inicie o uvicorn em outra porta: uvicorn main:app --reload --port 8001.
  • Erros ao ativar venv no PowerShell: Verifique a política de execução de scripts.