Integração com APIs
Requisições Básicas
🌐 HTTP Requests
#!/bin/bash
# Funções básicas de API
api_get() {
local url=$1
local token=$2
curl -s -H "Authorization: Bearer $token" \
-H "Content-Type: application/json" \
"$url"
}
api_post() {
local url=$1
local data=$2
local token=$3
curl -s -X POST \
-H "Authorization: Bearer $token" \
-H "Content-Type: application/json" \
-d "$data" \
"$url"
}
🔐 Autenticação
#!/bin/bash
# Gerenciamento de tokens
get_token() {
local api_key=$1
local api_secret=$2
local auth_url=$3
local response=$(curl -s -X POST \
-H "Content-Type: application/json" \
-d "{\"key\":\"$api_key\",\"secret\":\"$api_secret\"}" \
"$auth_url")
echo "$response" | jq -r '.token'
}
Integração Avançada
📡 Webhooks
#!/bin/bash
# Servidor webhook básico
start_webhook() {
local port=${1:-8080}
while true; do
echo -e "HTTP/1.1 200 OK\n\n$(date)" | \
nc -l -p $port -q 1 | \
while read line; do
echo "$line" >> webhook.log
# Processa webhook
process_webhook "$line"
done
done
}
🔄 Polling
#!/bin/bash
# Monitora API por mudanças
poll_api() {
local url=$1
local interval=${2:-60}
local token=$3
while true; do
response=$(api_get "$url" "$token")
process_updates "$response"
sleep "$interval"
done
}
Processamento de Dados
📊 Manipulação JSON
#!/bin/bash
# Processamento de respostas JSON
process_json() {
local json=$1
# Extrai campos específicos
local items=$(echo "$json" | jq -r '.items[]')
# Processa cada item
echo "$items" | while read -r item; do
local id=$(echo "$item" | jq -r '.id')
local status=$(echo "$item" | jq -r '.status')
# Atualiza status
if [ "$status" = "pending" ]; then
process_item "$id"
fi
done
}
📈 Rate Limiting
#!/bin/bash
# Controle de taxa de requisições
rate_limit() {
local requests=${1:-60} # requisições
local period=${2:-60} # segundos
local delay=$(bc <<< "scale=2; $period/$requests")
sleep "$delay"
}
Exercícios Práticos
🎯 Missão 1: Cliente API
#!/bin/bash
# Objetivos:
# 1. Implementar cliente REST
# 2. Gerenciar autenticação
# 3. Processar respostas
# 4. Implementar retry
# Exemplo de implementação
api_client() {
local base_url=$1
local token=$(get_token "$API_KEY" "$API_SECRET" "$AUTH_URL")
# Implementar lógica do cliente
}
API INTEGRATION
[🌐🌐🌐🌐🌐] 100%
STATUS: INTEGRADOR MESTRE
PRÓXIMO: ORQUESTRAÇÃO
14 abril 2025