APIs com Python

3 – Web
3.3 – APIs
3.3.1 – REST (requests, Django REST Framework)
3.3.2 – GraphQL (Graphene)
LEGENDA
Nivel_1
Nivel_2
Nivel_3

API significa Interface de Programação de Aplicações. Ela permite que dois softwares se comuniquem de forma padronizada. Primeiramente, APIs são essenciais para arquitetura moderna de software. Por exemplo, seu site pode buscar dados do Google Maps via API. Além disso, APIs podem ser REST, GraphQL ou WebSockets. A voz passiva é usada aqui: “os dados são trocados geralmente em JSON”. Quando utilizar APIs? Sempre que precisar integrar sistemas diferentes. Também quando você quer expor funcionalidades para terceiros. Python é excelente tanto para consumir quanto para criar APIs. Frameworks como Flask, FastAPI e Django REST Framework dominam. Vamos explorar conceitos, criação e consumo de APIs. Três subtítulos guiarão sua jornada pelo mundo das APIs. Ao final, você construirá sua primeira API funcional.

Conceitos fundamentais de apis rest

REST é o estilo arquitetural mais popular para APIs web. Ele usa os verbos HTTP como ações principais. GET recupera dados, POST cria, PUT atualiza e DELETE remove. Cada recurso é identificado por uma URL única. Por exemplo, /usuarios/42 representa o usuário com id 42. As respostas geralmente vêm no formato JSON (ou XML). A voz passiva é aplicada: “os códigos de status HTTP são usados para indicar resultado”. 200 significa sucesso, 404 recurso não encontrado, 500 erro no servidor. Uma API bem projetada segue esses princípios religiosamente. Quando usar REST? Na grande maioria das aplicações web. É simples, cacheável e compatível com qualquer cliente. A fórmula de maturidade REST (modelo de Richardson) tem três níveis: \(M = N_{\text{URI}} + N_{\text{verbos}} + N_{\text{HATEOAS}}\) Quanto maior o nível, mais robusta é a API. Para começar, foque nos dois primeiros níveis.

Criando uma api com fastapi

FastAPI é o framework moderno para construir APIs em Python. Ele oferece documentação automática e validação de tipos. Primeiro, instale com pip install fastapi uvicorn. Depois, defina rotas e modelos de dados com Pydantic. A velocidade é comparável a Node.js e Go. Quando usar FastAPI? Em projetos novos e de alta performance. Exemplo de uma API completa de tarefas (to-do list):

Rode com uvicorn main:app --reload e acesse /docs. A documentação interativa do Swagger aparecerá magicamente. Você pode testar todos os endpoints diretamente pelo navegador. Essa API REST completa foi criada em menos de 50 linhas de código.

Consumindo apis com python

Consumir APIs significa fazer requisições de dentro do seu código. A biblioteca requests é a mais popular para isso. Instale com pip install requests para começar. Ela suporta GET, POST, PUT, DELETE e autenticação. Quando consumir APIs? Ao integrar serviços de terceiros. Por exemplo, buscar previsão do tempo ou enviar e-mails. A voz passiva é aplicada: “os parâmetros são passados via dicionário”. Exemplo de consumo da API de tarefas que criamos:

Sempre trate os códigos de status HTTP nas respostas. Use try/except para capturar erros de rede ou timeout. APIs são o alicerce da integração moderna entre sistemas. Domine a criação e o consumo, e você estará pronto para qualquer projeto.

Transcrypt

3 – Web
3.2 – Frontend (transpilado)
3.2.1 – PyScript (roda Python no navegador)
3.2.2 – Brython
3.2.3 – Transcrypt
LEGENDA
Nivel_1
Nivel_2
Nivel_3

Transcrypt é um transpilador que converte Python em JavaScript. Ele gera código JS legível e de alta performance. Primeiramente, a sintaxe Python permanece quase idêntica. Por exemplo, você usa def, class e for normalmente. Além disso, o código gerado roda tão rápido quanto JS nativo. Isso ocorre porque a tradução é direta, sem interpretação em tempo real. A voz passiva é usada aqui: “os tipos dinâmicos são preservados na conversão”. Quando utilizar Transcrypt? Em projetos frontend que exigem performance. Também em aplicações onde o tamanho do código importa. Ao contrário do Brython, ele não carrega um interpretador inteiro. Portanto, o bundle final é muito menor. Vamos explorar instalação, exemplos e casos de uso. Três subtítulos organizam este guia completo.

Instalação e primeiro código com transcrypt

Transcrypt é instalado via pip no seu ambiente Python. Execute pip install transcrypt no terminal. Depois, escreva seu código Python em um arquivo .py. Para transpilar, use o comando transcrypt meu_script.py. O resultado será uma pasta __javascript__ com arquivos .js. Esses arquivos podem ser incluídos diretamente no HTML. A voz passiva é aplicada: “os imports são resolvidos em tempo de compilação”. Exemplo de um script Python para Transcrypt:

Após transpilar, inclua o JS gerado no HTML: <script src="__javascript__/app.js"></script>. Depois, chame configurarBotao() no evento onload da página. O Transcrypt mantém a tipagem dinâmica do Python.

Integração com bibliotecas javascript e dom

Transcrypt acessa qualquer biblioteca JavaScript nativa. Use o módulo javascript para importar objetos globais. Por exemplo, from javascript import JSON, localStorage. Você também pode chamar APIs do navegador diretamente. A sintaxe para manipular o DOM é muito similar ao JS puro. Isso reduz a curva de aprendizado para desenvolvedores web. Quando usar essa integração? Em projetos que usam React, Vue ou D3. Por exemplo, você escreve a lógica em Python e chama componentes React. Além disso, o código gerado é compatível com bundlers como Webpack. Um exemplo de uso com localStorage:

Note que Date.now() vem diretamente do JS. A integração é tão transparente que parece código Python puro. Isso é uma das maiores forças do Transcrypt.

Transcrypt vs. brython vs. pyscript

Transcrypt gera código JavaScript independente e leve. Brython precisa carregar um interpretador Python inteiro. PyScript usa WebAssembly, que é mais pesado ainda. Portanto, Transcrypt vence em performance e tamanho final. Quando escolher Transcrypt? Em aplicações web profissionais. Também em projetos onde o tempo de carregamento é crítico. Por outro lado, ele não suporta NumPy ou Pandas. Bibliotecas com extensões C (como TensorFlow) não funcionam. A fórmula de tamanho de bundle pode ajudar: \(T_{\text{Transcrypt}} \approx 0.2 \times T_{\text{Brython}}\) Ou seja, Transcrypt é cerca de 5 vezes menor que Brython. Então, para aplicações leves e rápidas, ele é imbatível. Desvantagem: a comunidade é pequena e a documentação limitada. No entanto, o projeto é estável e usado em produção. Para quem quer Python no frontend com performance, Transcrypt é a escolha. Experimente transpilar um pequeno componente hoje mesmo. Você ficará surpreso com a velocidade e simplicidade.