Grades
Visão Geral
O módulo Grades gerencia as grades de variação de produtos, como tamanhos (P, M, G, GG) ou cores (Azul, Vermelho, Verde). Cada grade pode ter múltiplas dimensões que são vinculadas aos produtos para controle de variações de estoque.
Base URL
Authorization: Bearer {token}
Endpoints
Descrição: Retorna uma lista paginada de grades cadastradas, com filtro opcional por descrição.
Parâmetros
| Nome | Tipo | Local | Obrigatório | Descrição |
|---|---|---|---|---|
descricao | string | query | — | Filtra por descrição da grade |
property | string | query | — | Campo de ordenação |
orderBy | string | query | — | Direção: asc ou desc |
pageNumber | integer | query | — | Número da página (padrão: 1) |
pageSize | integer | query | — | Registros por página (padrão: 20) |
Resposta de Sucesso 200
{
"pagination": {
"currentPage": 1,
"totalPages": 1,
"pageSize": 20,
"totalCount": 3,
"hasPrevious": false,
"hasNext": false
},
"data": [
{
"id": 1,
"descricao": "Tamanho",
"dimensoes": ["P", "M", "G", "GG", "XG"]
},
{
"id": 2,
"descricao": "Cor",
"dimensoes": ["Azul", "Vermelho", "Verde", "Preto"]
}
],
"summary": null
}
Campos da Resposta — data[]
| Campo | Tipo | Descrição |
|---|---|---|
id | integer (int64) | Identificador da grade |
descricao | string | Nome da grade (ex: "Tamanho", "Cor") |
dimensoes | array de strings | Lista de variações disponíveis nesta grade |
Códigos de Erro
| Código | Descrição |
|---|---|
401 | Token ausente ou inválido |
500 | Erro interno do servidor |
Exemplos de Código
cURL
curl -X GET "https://api.app.hooked.com.br/api/grades" \
-H "Authorization: Bearer {token}"
JavaScript
const response = await fetch('https://api.app.hooked.com.br/api/grades', {
headers: { 'Authorization': 'Bearer {token}' }
});
const data = await response.json();
Python
import requests
data = requests.get(
'https://api.app.hooked.com.br/api/grades',
headers={'Authorization': 'Bearer {token}'}
).json()
Go
import (
"io"
"net/http"
)
req, _ := http.NewRequest("GET", "https://api.app.hooked.com.br/api/grades", nil)
req.Header.Set("Authorization", "Bearer {token}")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
PHP
$ch = curl_init('https://api.app.hooked.com.br/api/grades');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ['Authorization: Bearer {token}'],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
n8n
{
"name": "Hooked API — GET /api/grades",
"nodes": [
{
"parameters": {
"method": "GET",
"url": "https://api.app.hooked.com.br/api/grades",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer SEU_TOKEN_AQUI"
}
]
},
"options": {}
},
"id": "node-1",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
250,
300
]
}
],
"connections": {},
"pinData": {}
}
Descrição: Cadastra uma nova grade de variação de produtos.
Corpo da Requisição
{
"descricao": "Voltagem",
"dimensoes": ["110V", "220V", "Bivolt"]
}
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
descricao | string | ✓ | Nome da grade |
dimensoes | array de strings | — | Variações da grade |
Resposta de Sucesso 200
Retorna a grade criada com o mesmo formato da listagem.
Códigos de Erro
| Código | Descrição |
|---|---|
400 | Dados inválidos |
401 | Token ausente ou inválido |
500 | Erro interno do servidor |
Exemplos de Código
cURL
curl -X POST "https://api.app.hooked.com.br/api/grades" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"descricao":"Voltagem","dimensoes":["110V","220V","Bivolt"]}'
JavaScript
const response = await fetch('https://api.app.hooked.com.br/api/grades', {
method: 'POST',
headers: {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"descricao": "Voltagem",
"dimensoes": [
"110V",
"220V",
"Bivolt"
]
})
});
const data = await response.json();
Python
import requests
data = requests.post(
'https://api.app.hooked.com.br/api/grades',
headers={'Authorization': 'Bearer {token}'},
json={'descricao': 'Voltagem', 'dimensoes': ['110V', '220V', 'Bivolt']}
).json()
Go
import (
"bytes"
"net/http"
)
payload := []byte(`{"descricao":"Voltagem","dimensoes":["110V","220V","Bivolt"]}`)
req, _ := http.NewRequest("POST", "https://api.app.hooked.com.br/api/grades", bytes.NewBuffer(payload))
req.Header.Set("Authorization", "Bearer {token}")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
PHP
$ch = curl_init('https://api.app.hooked.com.br/api/grades');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer {token}', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'descricao' => 'Voltagem',
'dimensoes' => [
'110V',
'220V'
]
]),
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
n8n
{
"name": "Hooked API — POST /api/grades",
"nodes": [
{
"parameters": {
"method": "POST",
"url": "https://api.app.hooked.com.br/api/grades",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer SEU_TOKEN_AQUI"
}
]
},
"sendBody": true,
"contentType": "json",
"specifyBody": "json",
"jsonBody": "{\"descricao\":\"Voltagem\",\"dimensoes\":[\"110V\",\"220V\",\"Bivolt\"]}",
"options": {}
},
"id": "node-1",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
250,
300
]
}
],
"connections": {},
"pinData": {}
}
Descrição: Retorna os dados de uma grade pelo ID.
Parâmetros
| Nome | Tipo | Local | Obrigatório | Descrição |
|---|---|---|---|---|
id | integer (int64) | path | ✓ | ID da grade |
Resposta de Sucesso 200
{
"id": 1,
"descricao": "Tamanho",
"dimensoes": ["P", "M", "G", "GG", "XG"]
}
Códigos de Erro
| Código | Descrição |
|---|---|
401 | Token ausente ou inválido |
404 | Grade não encontrada |
500 | Erro interno do servidor |
Exemplos de Código
cURL
curl -X GET "https://api.app.hooked.com.br/api/grades/{id}" \
-H "Authorization: Bearer {token}"
JavaScript
const response = await fetch('https://api.app.hooked.com.br/api/grades/{id}', {
headers: { 'Authorization': 'Bearer {token}' }
});
const data = await response.json();
Python
import requests
data = requests.get(
'https://api.app.hooked.com.br/api/grades/{id}',
headers={'Authorization': 'Bearer {token}'}
).json()
Go
import (
"io"
"net/http"
)
req, _ := http.NewRequest("GET", "https://api.app.hooked.com.br/api/grades/{id}", nil)
req.Header.Set("Authorization", "Bearer {token}")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
PHP
$ch = curl_init('https://api.app.hooked.com.br/api/grades/{id}');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ['Authorization: Bearer {token}'],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
n8n
{
"name": "Hooked API — GET /api/grades/{id}",
"nodes": [
{
"parameters": {
"method": "GET",
"url": "https://api.app.hooked.com.br/api/grades/{id}",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer SEU_TOKEN_AQUI"
}
]
},
"options": {}
},
"id": "node-1",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
250,
300
]
}
],
"connections": {},
"pinData": {}
}
Descrição: Atualiza os dados de uma grade existente.
Parâmetros
| Nome | Tipo | Local | Obrigatório | Descrição |
|---|---|---|---|---|
id | integer (int64) | path | ✓ | ID da grade a atualizar |
Corpo da Requisição
{
"id": 1,
"descricao": "Tamanho Vestuário",
"dimensoes": ["PP", "P", "M", "G", "GG", "XG", "XXG"]
}
Resposta de Sucesso 200
Retorna a grade atualizada.
Códigos de Erro
| Código | Descrição |
|---|---|
400 | Dados inválidos |
401 | Token ausente ou inválido |
404 | Grade não encontrada |
500 | Erro interno do servidor |
Exemplos de Código
cURL
curl -X PUT "https://api.app.hooked.com.br/api/grades/{id}" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"id":1,"descricao":"Tamanho Vestuário","dimensoes":["PP","P","M","G","GG","XG","XXG"]}'
JavaScript
const response = await fetch('https://api.app.hooked.com.br/api/grades/{id}', {
method: 'PUT',
headers: {
'Authorization': 'Bearer {token}',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"id": 1,
"descricao": "Tamanho Vestuário",
"dimensoes": [
"PP",
"P",
"M",
"G",
"GG",
"XG",
"XXG"
]
})
});
const data = await response.json();
Python
import requests
data = requests.put(
'https://api.app.hooked.com.br/api/grades/{id}',
headers={'Authorization': 'Bearer {token}'},
json={'id': 1, 'descricao': 'Tamanho Vestuário', 'dimensoes': ['PP', 'P', 'M', 'G', 'GG', 'XG', 'XXG']}
).json()
Go
import (
"bytes"
"net/http"
)
payload := []byte(`{"id":1,"descricao":"Tamanho Vestuário","dimensoes":["PP","P","M","G","GG","XG","XXG"]}`)
req, _ := http.NewRequest("PUT", "https://api.app.hooked.com.br/api/grades/{id}", bytes.NewBuffer(payload))
req.Header.Set("Authorization", "Bearer {token}")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
PHP
$ch = curl_init('https://api.app.hooked.com.br/api/grades/{id}');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_HTTPHEADER => ['Authorization: Bearer {token}', 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode([
'id' => 1,
'descricao' => 'Tamanho Vestuário',
'dimensoes' => [
'PP',
'P'
]
]),
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
n8n
{
"name": "Hooked API — PUT /api/grades/{id}",
"nodes": [
{
"parameters": {
"method": "PUT",
"url": "https://api.app.hooked.com.br/api/grades/{id}",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer SEU_TOKEN_AQUI"
}
]
},
"sendBody": true,
"contentType": "json",
"specifyBody": "json",
"jsonBody": "{\"id\":1,\"descricao\":\"Tamanho Vestuário\",\"dimensoes\":[\"PP\",\"P\",\"M\",\"G\",\"GG\",\"XG\",\"XXG\"]}",
"options": {}
},
"id": "node-1",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
250,
300
]
}
],
"connections": {},
"pinData": {}
}
Descrição: Remove uma grade pelo ID.
Parâmetros
| Nome | Tipo | Local | Obrigatório | Descrição |
|---|---|---|---|---|
id | integer (int64) | path | ✓ | ID da grade a remover |
Resposta de Sucesso 200
Retorna a grade removida.
Códigos de Erro
| Código | Descrição |
|---|---|
401 | Token ausente ou inválido |
404 | Grade não encontrada |
500 | Erro interno do servidor |
Exemplos de Código
cURL
curl -X DELETE "https://api.app.hooked.com.br/api/grades/{id}" \
-H "Authorization: Bearer {token}"
JavaScript
const response = await fetch('https://api.app.hooked.com.br/api/grades/{id}', {
method: 'DELETE',
headers: { 'Authorization': 'Bearer {token}' }
});
const data = await response.json();
Python
import requests
data = requests.delete(
'https://api.app.hooked.com.br/api/grades/{id}',
headers={'Authorization': 'Bearer {token}'}
).json()
Go
import (
"io"
"net/http"
)
req, _ := http.NewRequest("DELETE", "https://api.app.hooked.com.br/api/grades/{id}", nil)
req.Header.Set("Authorization", "Bearer {token}")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
PHP
$ch = curl_init('https://api.app.hooked.com.br/api/grades/{id}');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_HTTPHEADER => ['Authorization: Bearer {token}'],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
n8n
{
"name": "Hooked API — DELETE /api/grades/{id}",
"nodes": [
{
"parameters": {
"method": "DELETE",
"url": "https://api.app.hooked.com.br/api/grades/{id}",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer SEU_TOKEN_AQUI"
}
]
},
"options": {}
},
"id": "node-1",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [
250,
300
]
}
],
"connections": {},
"pinData": {}
}
