QUICKSTART
OBrain Hub — Quickstart Guide
Este guia mostra como começar a usar a API do OBrain Hub em menos de 10 minutos.
1. Obter uma API Key
- Acesse hub.oconnector.tech
- Crie uma conta (ou faça login)
- Vá em Configurações → Chaves de API
- Clique em Gerar Nova Chave
- Copie a chave (ela só é mostrada uma vez!)
2. Testar a Conexão
curl -X GET "https://obrain-api.dev-oconnector.workers.dev/api/v1/products?limit=5" \
-H "X-API-Key: SUA_CHAVE_AQUI"Você deve receber uma lista de produtos.
3. Integrar na sua Loja
Shopify (Liquid)
{% comment %} Em um template de produto ou collection {% endcomment %}
<script>
async function fetchProducts() {
const response = await fetch('https://obrain-api.dev-oconnector.workers.dev/api/v1/products?limit=20', {
headers: { 'X-API-Key': 'SUA_CHAVE' }
});
const data = await response.json();
console.log(data.data);
}
fetchProducts();
</script>WooCommerce (PHP)
<?php
function obrain_fetch_products($limit = 20) {
$api_key = get_option('obrain_api_key');
$response = wp_remote_get(
"https://obrain-api.dev-oconnector.workers.dev/api/v1/products?limit={$limit}",
[
'headers' => [
'X-API-Key' => $api_key,
],
]
);
if (is_wp_error($response)) {
return [];
}
$body = wp_remote_retrieve_body($response);
$data = json_decode($body, true);
return $data['data'] ?? [];
}Node.js / Next.js
// lib/obrain.js
const OBRAIN_API_URL = 'https://obrain-api.dev-oconnector.workers.dev';
export async function getProducts(options = {}) {
const { page = 1, limit = 20, category } = options;
const params = new URLSearchParams({ page, limit });
if (category) params.set('category', category);
const response = await fetch(
`${OBRAIN_API_URL}/api/v1/products?${params}`,
{
headers: {
'X-API-Key': process.env.OBRAIN_API_KEY,
},
}
);
if (!response.ok) {
throw new Error(`OBrain API error: ${response.status}`);
}
return response.json();
}
// Usage
const { data: products, pagination } = await getProducts({ limit: 50 });Python
import os
import requests
OBRAIN_API_URL = 'https://obrain-api.dev-oconnector.workers.dev'
API_KEY = os.environ.get('OBRAIN_API_KEY')
def get_products(page=1, limit=20, category=None):
headers = {'X-API-Key': API_KEY}
params = {'page': page, 'limit': limit}
if category:
params['category'] = category
response = requests.get(
f'{OBRAIN_API_URL}/api/v1/products',
headers=headers,
params=params
)
response.raise_for_status()
return response.json()
# Uso
products = get_products(limit=50)
for product in products['data']:
print(f"{product['name']}: R${product['price']:.2f}")4. Estrutura de um Produto
{
"id": "pid-12345",
"sku": "CJ-WATCH-001",
"name": "Smart Watch Ultra",
"description": "Descrição completa do produto...",
"price": 299.90,
"currency": "BRL",
"stock": 150,
"category": "Electronics",
"image": "https://...",
"images": ["url1", "url2"],
"isLocked": false
}Campos Importantes
| Campo | Descrição |
|---|---|
price | Preço final em BRL (já com markup e frete) |
stock | Estoque disponível |
rankIndex | Posição no ranking (1 = melhor) |
isLocked | Se true, o produto está bloqueado para seu plano |
5. Planos e Acesso
| Plano | Produtos Acessíveis | Markup |
|---|
Produtos com isLocked: true requerem upgrade de plano.
6. Boas Práticas
Cache
Faça cache dos produtos por 1-5 minutos para evitar rate limits:
// Next.js com cache
export const revalidate = 300; // 5 minutos
async function getProducts() {
// Esta requisição será cacheada por 5 min
return fetch('...', { next: { revalidate: 300 } });
}Tratamento de Erros
try {
const products = await getProducts();
} catch (error) {
if (error.status === 401) {
console.error('API Key inválida');
} else if (error.status === 429) {
console.error('Rate limit atingido, aguarde um minuto');
} else {
console.error('Erro desconhecido:', error);
}
}Não Exponha a API Key
// ❌ ERRADO: API key no frontend
fetch('...', { headers: { 'X-API-Key': 'sk_live_xxx' } });
// ✅ CORRETO: API key no backend/serverless
// pages/api/products.js
export default async function handler(req, res) {
const response = await fetch('...', {
headers: { 'X-API-Key': process.env.OBRAIN_API_KEY },
});
res.json(await response.json());
}7. Próximos Passos
- Importe a Postman Collection
- Leia a API Reference completa
- Configure webhooks para receber atualizações de pedidos
- Contate suporte para integrações customizadas
Suporte
- Email: support@oconnector.tech
- Docs: docs.oconnector.tech