🌐 Fundamentos de APIs
APIs (Application Programming Interfaces) permitem que sistemas se comuniquem. REST e o estilo mais comum, baseado em HTTP.
HTTP Methods
Ler dados
Criar dados
Atualizar
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"}]}'
🔐 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
📥 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)
⚠️ 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
🔧 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"
📝 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
Proximo Modulo:
4.6 - Bancos Vetoriais