Dominando o HTTP Request No n8n
Dominando o HTTP Request No n8n
## Índice
1. Introdução
1.1 O que é o n8n?
1.2 Importância do HTTP Request
4. Requisições GET
4.1 Estrutura básica
4.2 Adicionando parâmetros de consulta
4.3 Exemplo prático: API do GitHub
5. Requisições POST
5.1 Enviando dados no corpo da requisição
5.2 Formatos de dados: JSON e Form-Data
5.3 Exemplo prático: Criando recursos
6. Autenticação em Requisições
6.1 API Key
6.2 Basic Auth
6.3 Bearer Token
6.4 OAuth 2.0 (visão geral)
7. Headers Personalizados
7.1 Importância dos headers
7.2 Headers comuns e seus usos
7.3 Configurando headers no n8n
8. Tratamento de Respostas
8.1 Acessando dados da resposta
8.2 Manipulando JSON
8.3 Lidando com erros
9. Técnicas Avançadas
9.1 Requisições em lote
9.2 Paginação
9.3 Encadeamento de requisições
10. Otimização e Boas Práticas
10.1 Melhorando o desempenho
10.2 Segurança em requisições
10.3 Depuração e solução de problemas
## 1. Introdução
- Método HTTP
- URL
- Headers
- Query Parameters
- Body
- Autenticação
```json
{
"parameters": {
"method": "GET",
"url": "https://api.example.com/data",
"authentication": "none",
"options": {}
}
}
4. Requisições GET
4.1 Estrutura básica
Exemplo de uma requisição GET simples:
json
Copiar
{
"parameters": {
"method": "GET",
"url": "https://api.github.com/users/octocat",
"authentication": "none",
"options": {}
}
}
4.2 Adicionando parâmetros de consulta
Exemplo com parâmetros de consulta:
json
Copiar
{
"parameters": {
"method": "GET",
"url": "https://api.github.com/search/repositories",
"authentication": "none",
"options": {},
"queryParameters": {
"q": "node.js",
"sort": "stars",
"order": "desc"
}
}
}
4.3 Exemplo prático: API do GitHub
Buscar informações de um usuário do GitHub:
json
Copiar
{
"parameters": {
"method": "GET",
"url": "https://api.github.com/users/octocat",
"authentication": "none",
"options": {}
}
}
5. Requisições POST
5.1 Enviando dados no corpo da requisição
Exemplo de uma requisição POST:
json
Copiar
{
"parameters": {
"method": "POST",
"url": "https://jsonplaceholder.typicode.com/posts",
"authentication": "none",
"options": {},
"body": {
"title": "Teste do n8n",
"body": "Este é um post de teste criado via n8n",
"userId": 1
}
}
}
5.2 Formatos de dados: JSON e Form-Data
Para Form-Data:
json
Copiar
{
"parameters": {
"method": "POST",
"url": "https://api.example.com/submit-form",
"authentication": "none",
"options": {},
"bodyFormData": {
"name": "John Doe",
"email": "[email protected]"
}
}
}
5.3 Exemplo prático: Criando recursos
Criar um novo post usando JSONPlaceholder:
json
Copiar
{
"parameters": {
"method": "POST",
"url": "https://jsonplaceholder.typicode.com/posts",
"authentication": "none",
"options": {},
"body": {
"title": "Novo Post via n8n",
"body": "Este é o conteúdo do novo post criado usando o n8n.",
"userId": 1
}
}
}
6. Autenticação em Requisições
6.1 API Key
Exemplo de autenticação com API Key:
json
Copiar
{
"parameters": {
"method": "GET",
"url": "https://api.openweathermap.org/data/2.5/weather",
"authentication": "queryAuth",
"options": {},
"queryParameters": {
"q": "London",
"units": "metric",
"appid": "YOUR_API_KEY_HERE"
}
}
}
6.2 Basic Auth
Exemplo de Basic Auth:
json
Copiar
{
"parameters": {
"method": "GET",
"url": "https://api.example.com/secure-data",
"authentication": "basicAuth",
"options": {},
"username": "your_username",
"password": "your_password"
}
}
6.3 Bearer Token
Exemplo de autenticação com Bearer Token:
json
Copiar
{
"parameters": {
"method": "GET",
"url": "https://api.spotify.com/v1/me",
"authentication": "headerAuth",
"options": {},
"headers": {
"Authorization": "Bearer YOUR_ACCESS_TOKEN_HERE"
}
}
}
6.4 OAuth 2.0 (visão geral)
OAuth 2.0 é um protocolo de autorização mais complexo que geralmente envolve
vários passos. No n8n, você pode configurar a autenticação OAuth 2.0 nas
credenciais do nó. O processo geralmente inclui:
json
Copiar
{
"parameters": {
"method": "GET",
"url": "https://api.example.com/data",
"authentication": "none",
"options": {},
"headers": {
"Content-Type": "application/json",
"Accept": "application/json",
"X-Custom-Header": "CustomValue"
}
}
}
8. Tratamento de Respostas
8.1 Acessando dados da resposta
Para acessar dados da resposta em nós subsequentes:
json
Copiar
{
"parameters": {
"keepOnlySet": true,
"values": {
"processedData": "={{ $json.items.map(item => ({ id: item.id, name:
item.name })) }}"
}
}
}
8.3 Lidando com erros
Exemplo de tratamento de erro usando um nó IF:
json
Copiar
{
"parameters": {
"conditions": {
"number": [
{
"value1": "={{ $node[\"HTTP Request\"].statusCode }}",
"operation": "equal",
"value2": 200
}
]
}
}
}
9. Técnicas Avançadas
9.1 Requisições em lote
Exemplo de configuração para requisições em lote:
json
Copiar
{
"parameters": {
"method": "GET",
"url": "=https://api.github.com/users/{{ $item.username }}",
"authentication": "none",
"options": {}
}
}
9.2 Paginação
Exemplo de configuração para paginação:
json
Copiar
{
"parameters": {
"method": "GET",
"url": "https://api.github.com/users/octocat/repos",
"authentication": "none",
"options": {},
"queryParameters": {
"page": "={{ $runIndex }}",
"per_page": 30
}
}
}
9.3 Encadeamento de requisições
Usar dados de uma requisição em outra:
json
Copiar
{
"parameters": {
"method": "GET",
"url": "=https://api.github.com/repos/{{ $node[\"Previous
Request\"].json.full_name }}/issues",
"authentication": "none",
"options": {}
}
}
10. Otimização e Boas Práticas
10.1 Melhorando o desempenho
Use caching quando apropriado para reduzir o número de chamadas à API
Minimize o número de requisições agrupando dados quando possível
Utilize requisições em lote para processar múltiplos itens de uma vez
Implemente paginação para lidar com grandes conjuntos de dados eficientemente
10.2 Segurança em requisições
Nunca exponha chaves API ou tokens diretamente no fluxo de trabalho
Use variáveis de ambiente para armazenar dados sensíveis
Implemente rate limiting para evitar sobrecarga de APIs
Use HTTPS para todas as requisições que envolvem dados sensíveis
Valide e sanitize todos os dados de entrada antes de enviá-los em requisições
10.3 Depuração e solução de problemas
Use o modo de depuração do n8n para inspecionar requisições e respostas
Verifique logs de erro para informações detalhadas
Teste suas requisições com ferramentas como Postman antes de implementá-las no
n8n
Implemente tratamento de erros robusto para lidar com falhas de API
graciosamente
11. Projetos Práticos
11.1 Integrando múltiplas APIs
Exemplo: Buscar dados meteorológicos e enviar para o Slack
json
Copiar
[
{
"name": "HTTP Request",
"parameters": {
"method": "GET",
"url": "http://api.openweathermap.org/data/2.5/weather",
"authentication": "queryAuth",
"options": {},
"queryParameters": {
"q": "London",
"units": "metric",
"appid": "YOUR_API_KEY_HERE"
}
}
},
{
"name": "Slack",
"parameters": {
"channel": "weather-updates",
"text
"text": "=Temperatura atual em Londres: {{ $node[\"HTTP
Request\"].json.main.temp }}°C"
}
}
]
11.2 Construindo um dashboard de dados
Exemplo: Coletar dados de várias fontes e consolidar
json
Copiar
[
{
"name": "GitHub API",
"parameters": {
"method": "GET",
"url": "https://api.github.com/repos/n8n-io/n8n",
"authentication": "none",
"options": {}
}
},
{
"name": "Twitter API",
"parameters": {
"method": "GET",
"url": "https://api.twitter.com/2/tweets/search/recent",
"authentication": "headerAuth",
"options": {},
"queryParameters": {
"query": "n8n"
},
"headers": {
"Authorization": "Bearer YOUR_TWITTER_TOKEN"
}
}
},
{
"name": "Consolidate Data",
"parameters": {
"keepOnlySet": true,
"values": {
"dashboardData": {
"githubStars": "={{ $node[\"GitHub API\"].json.stargazers_count }}",
"recentTweets": "={{ $node[\"Twitter API\"].json.data.length }}"
}
}
}
}
]
11.3 Automação de processos de negócios
Exemplo: Fluxo de trabalho para gerenciamento de leads
json
Copiar
[
{
"name": "Webhook",
"parameters": {
"path": "new-lead",
"responseMode": "lastNode",
"options": {}
}
},
{
"name": "CRM API",
"parameters": {
"method": "POST",
"url": "https://api.crm.com/leads",
"authentication": "headerAuth",
"options": {},
"headers": {
"Authorization": "Bearer YOUR_CRM_TOKEN"
},
"body": {
"name": "={{ $node[\"Webhook\"].json.name }}",
"email": "={{ $node[\"Webhook\"].json.email }}",
"source": "website"
}
}
},
{
"name": "Send Email",
"parameters": {
"to": "={{ $node[\"Webhook\"].json.email }}",
"subject": "Obrigado pelo seu interesse!",
"text": "=Olá {{ $node[\"Webhook\"].json.name }},\n\nObrigado por entrar
em contato. Nossa equipe entrará em contato em breve.\n\nAtenciosamente,\nEquipe
de Vendas"
}
}
]
12. Conclusão e Próximos Passos
Parabéns por concluir este guia abrangente sobre o uso do HTTP Request no n8n!
Você agora possui um conjunto sólido de habilidades para criar automações
poderosas e integrar diversos sistemas e APIs.
Este ebook é protegido por direitos autorais. Nenhuma parte desta publicação
pode ser reproduzida, distribuída ou transmitida de qualquer forma ou por
qualquer meio, incluindo fotocópia, gravação ou outros métodos eletrônicos ou
mecânicos, sem a prévia autorização por escrito do autor, exceto no caso de
breves citações incorporadas em resenhas críticas e certos outros usos não
comerciais permitidos pela lei de direitos autorais.
ISBN: 978-0-1234567-8-9