MODULO 4.5

🔌 APIs e Webhooks

Integracoes praticas: REST APIs, autenticacao, webhooks, tratamento de erros e MCP servers para skills avancadas.

6
Topicos
30
Minutos
Avancado
Nivel
Pratico
Tipo
1

🌐 Fundamentos de APIs

APIs (Application Programming Interfaces) permitem que sistemas se comuniquem. REST e o estilo mais comum, baseado em HTTP.

HTTP Methods

GET

Ler dados

POST

Criar dados

PUT

Atualizar

DELETE

Remover

Exemplo de Request

curl -X POST https://api.example.com/v1/messages \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "claude-3", "messages": [{"role": "user", "content": "Hello"}]}'
2

🔐 Autenticacao

Autenticacao protege APIs de acesso nao autorizado. Existem varios metodos, cada um com trade-offs de seguranca e complexidade.

API Keys

Simples, token unico no header.

Authorization: Bearer sk-xxx

OAuth 2.0

Delegated auth, tokens temporarios.

Authorization: Bearer eyJhbG...

⚠️ Seguranca

  • • NUNCA commitar API keys em codigo
  • • Use environment variables
  • • Rotacione keys periodicamente
  • • Use secrets managers em producao
3

📥 Webhooks Recebidos

Webhooks sao callbacks HTTP que sistemas externos enviam quando eventos ocorrem. Permitem integracao em tempo real sem polling.

Anatomia de um Webhook

  • URL: Endpoint que recebe o POST
  • Payload: JSON com dados do evento
  • Signature: Hash para verificar autenticidade
  • Retry: Re-envio em caso de falha

Verificando Signature

import hmac
import hashlib

def verify_signature(payload, signature, secret):
    expected = hmac.new(
        secret.encode(),
        payload.encode(),
        hashlib.sha256
    ).hexdigest()
    return hmac.compare_digest(expected, signature)
4

⚠️ Tratamento de Erros

Integracoes robustas precisam tratar erros graciosamente. APIs podem falhar por diversos motivos: rede, rate limits, erros de servidor.

Status Codes

  • 2xx - Sucesso
  • 4xx - Erro do cliente
  • 5xx - Erro do servidor
  • 429 - Rate limited

Retry Strategy

  • • Exponential backoff
  • • Max retries (3-5)
  • • Jitter para evitar thundering herd
  • • Circuit breaker para falhas persistentes
5

🔧 MCP Servers

Model Context Protocol (MCP) e o protocolo da Anthropic para conectar Claude a ferramentas externas de forma padronizada.

Componentes MCP

  • Tools: Funcoes que o agente pode chamar
  • Resources: Dados que o agente pode ler
  • Prompts: Templates pre-definidos

MCP Server Exemplo

from mcp.server import Server

server = Server("weather-service")

@server.tool()
async def get_weather(city: str) -> str:
    """Retorna clima atual de uma cidade."""
    # Implementacao
    return f"Clima em {city}: 25C, ensolarado"
6

📝 Skills com Integracoes

Skills podem encapsular logica de integracao complexa, abstraindo detalhes de API para o agente.

Skill com API Integration

---
name: github-pr-reviewer
description: Revisa PRs no GitHub.
  Use quando usuario pedir review de pull request.
allowed-tools: Bash(python:*), Bash(gh:*)
---

# GitHub PR Reviewer

Para revisar um PR:

1. Buscar diff: `gh pr diff $PR_NUMBER`
2. Analisar mudancas
3. Postar comentarios: `gh pr review $PR_NUMBER --comment -b "..."`

## Checklist de Review
- [ ] Codigo segue style guide
- [ ] Testes adequados
- [ ] Sem secrets expostos
- [ ] Performance aceitavel

🎯 Proximo Passo

No proximo modulo, exploramos Bancos Vetoriais - embeddings, busca semantica e RAG para skills com conhecimento.

📚 Resumo do Modulo

REST APIs - HTTP methods, endpoints, JSON payloads
Autenticacao - API keys, OAuth, JWT, seguranca
Webhooks - Callbacks HTTP, signature verification
Error Handling - Status codes, retry, circuit breaker
MCP Servers - Protocolo Anthropic para tools
Skills - Encapsulando integracoes complexas

Proximo Modulo:

4.6 - Bancos Vetoriais