Pular para o conteúdo principal

API Reference

A API REST do LJ Velas & Aromas segue os princípios REST e usa JSON para todos os payloads.

👉 Abrir documentação interativa (Redoc)


Base URLs

AmbienteURL
Produçãohttps://ljvelasearomas.com.br
Desenvolvimento localhttp://localhost:3000

Autenticação

A API possui dois mecanismos de autenticação dependendo do grupo de endpoints:

Endpoints da loja (/api/*)

Rotas protegidas utilizam cookie de sessão JWT (token), definido automaticamente após uma chamada bem-sucedida a /api/auth/login ou /api/auth/register.

# O cookie é definido automaticamente pelo servidor.
# Basta enviar as requisições com credentials: "include" no fetch.

Endpoints de integração (/api/v1/*)

Requerem API Key com prefixo lvk_ enviada no header Authorization:

Authorization: Bearer lvk_suachaveaqui

As chaves são gerenciadas no painel administrativo e possuem escopos granulares:

EscopoDescrição
products:readLeitura de produtos
products:writeAtualização de produtos
stock:writeAtualização de estoque
orders:readLeitura de pedidos
orders:writeAtualização de status e rastreio

Endpoints disponíveis

Auth

MétodoEndpointDescriçãoAuth
POST/api/auth/loginLogin com email e senha
POST/api/auth/registerRegistro de novo usuário
POST/api/auth/logoutEncerrar sessão
GET/api/auth/meDados do usuário autenticadoCookie JWT
PUT/api/auth/meAtualizar perfilCookie JWT

Loja pública

MétodoEndpointDescriçãoAuth
GET/api/productsListar produtos ativos
GET/api/products/{slug}Detalhe de produto por slug
GET/api/categoriesListar categorias ativas
GET/api/shipping/calculateCalcular frete por CEP
POST/api/coupons/validateValidar cupom de descontoCookie JWT
GET/api/ordersListar pedidos do usuárioCookie JWT
POST/api/ordersCriar pedidoCookie JWT

API de integração (v1)

MétodoEndpointEscopo necessário
GET/api/v1/productsproducts:read
GET/api/v1/products/{id}products:read
PATCH/api/v1/products/{id}products:write
PATCH/api/v1/products/{id}/stockstock:write
GET/api/v1/ordersorders:read
GET/api/v1/orders/{id}orders:read
PATCH/api/v1/orders/{id}orders:write

Códigos de resposta comuns

CódigoSignificado
200Sucesso
201Recurso criado
400Dados inválidos (validação Zod)
401Não autenticado (cookie ausente, API key inválida)
403Conta suspensa ou escopo de API key insuficiente
404Recurso não encontrado
409Conflito (ex: email já cadastrado)
422Erro semântico (ex: CEP inexistente, cupom esgotado)
429Rate limit atingido
500Erro interno do servidor

Todos os erros retornam o body:

{
"error": "Mensagem descritiva do erro"
}

Rate limits

EndpointLimite
POST /api/auth/login10 tentativas / 15 min por IP
POST /api/auth/register5 tentativas / hora por IP
POST /api/coupons/validate30 tentativas / min por IP

Quando o limite é atingido, a resposta inclui o header Retry-After (em segundos).


Para a documentação interativa completa com todos os schemas e exemplos, acesse API Reference → Redoc.