Passo 1
Crie um projeto gratuito
Preencha o cadastro na página inicial. Ao concluir, você recebe o slug, o usuário e uma senha de 32 caracteres. A senha aparece apenas uma vez — copie antes de fechar.
Ir para o cadastroPasso 2
Baixe o SDK JavaScript
O SDK não tem dependências. Salve o arquivo como src/lib/json-dock-client.js no seu projeto. Se preferir usar fetch ou cURL direto, pule para o passo 3 — todos os exemplos têm as duas versões.
Passo 3
Configure as credenciais
Substitua os três valores pelas credenciais recebidas. Basic Auth é indicado para estudos, scripts locais e backends privados.
import { JsonDockClient, JsonDockApiError } from './lib/json-dock-client.js';
export const api = new JsonDockClient({
baseUrl: 'https://api.jsondock.catini.org',
projectSlug: 'SEU_SLUG',
basicAuth: {
username: 'SEU_USUARIO',
password: 'SUA_SENHA',
},
});Passo 4
Grave o primeiro registro
O namespace produtos nasce automaticamente no primeiro POST. O objeto pode ter os campos que fizerem sentido — não há schema para declarar.
const produto = await api.create('produtos', {
nome: 'Teclado mecanico',
preco: 349.9,
estoque: 12,
ativo: true,
categoria: 'perifericos',
});
console.log('Produto criado:', produto.id);Passo 5
Consulte com filtros
A listagem aceita paginação, ordenação, janelas de data e nove operadores de filtro sobre qualquer propriedade, inclusive aninhada.
const pagina = await api.list('produtos', {
page: 1,
limit: 20,
sort: 'createdAt',
direction: 'desc',
filters: {
ativo: { eq: true },
preco: { gte: 100, lte: 500 },
nome: { contains: 'mecanico' },
},
});
console.log(pagina.items, pagina.pagination);Passo 6
Altere e exclua
PATCH mescla (JSON Merge Patch), PUT substitui tudo e DELETE faz exclusão lógica. As três operações incrementam ou preservam version.
// Atualizacao parcial (merge)
await api.patch('produtos', produto.id, { preco: 329.9, estoque: 10 });
// Substituicao completa
await api.replace('produtos', produto.id, { nome: 'Teclado RGB', preco: 399.9 });
// Leitura e exclusao logica
const atualizado = await api.get('produtos', produto.id);
await api.delete('produtos', produto.id);Métodos do SDK
create(namespace, data)list(namespace, options)get(namespace, id)replace(namespace, id, data)patch(namespace, id, patch)delete(namespace, id)Passo 7
Trate os erros
Todo erro traz um code estável e um requestId. Guarde o requestId ao investigar uma falha: ele localiza a requisição nos registros técnicos.
try {
await api.get('produtos', 'id-invalido');
} catch (error) {
if (error instanceof JsonDockApiError) {
console.error(error.status, error.code, error.message);
console.error(`Request ID: ${error.requestId}`);
}
}A tabela completa de códigos está na referência da API.
Próximo passo
Agora que o básico funciona, a referência cobre todos os parâmetros do GET, os limites de payload, o rate limit e os códigos de erro.