Skip to content

Erros e Respostas ​

A API segue os códigos HTTP padrão e retorna respostas JSON consistentes.

Formato da resposta ​

Sucesso — item único ​

json
{
  "data": {
    "id": 1,
    "name": "Produto Exemplo"
  }
}

Sucesso — listagem paginada ​

json
{
  "data": [
    { "id": 1, "name": "Produto A" },
    { "id": 2, "name": "Produto B" }
  ],
  "links": {
    "first": "https://sualoja.com.br/api/v1/products?page=1",
    "last": "https://sualoja.com.br/api/v1/products?page=5",
    "prev": null,
    "next": "https://sualoja.com.br/api/v1/products?page=2"
  },
  "meta": {
    "current_page": 1,
    "from": 1,
    "last_page": 5,
    "per_page": 25,
    "to": 25,
    "total": 120
  }
}

Sucesso — exclusão ​

json
{
  "message": "Produto removido."
}

Códigos de status ​

CódigoSignificadoQuando ocorre
200OKRequisição processada com sucesso
201CreatedRecurso criado com sucesso (POST)
401UnauthorizedAPI key ausente, inválida ou expirada
404Not FoundRecurso não encontrado
422Unprocessable EntityErro de validação ou restrição de integridade
429Too Many RequestsRate limit excedido (60 req/min)
500Server ErrorErro interno do servidor

Erros de validação ​

Quando os dados enviados não passam na validação, a API retorna 422 com os campos e mensagens de erro:

http
HTTP/1.1 422 Unprocessable Entity
json
{
  "message": "Dados inválidos.",
  "errors": {
    "name": [
      "O campo nome é obrigatório."
    ],
    "price": [
      "O campo preço deve ser um número.",
      "O campo preço deve ser pelo menos 0."
    ]
  }
}

Erros de integridade ​

Ao tentar excluir um recurso que possui vínculos:

http
HTTP/1.1 422 Unprocessable Entity
json
{
  "message": "Não é possível excluir: 15 produto(s) vinculado(s)."
}

Paginação ​

Todas as listagens suportam paginação via query params:

ParâmetroPadrãoMáximoDescrição
page1—Página atual
per_page25100Itens por página

Exemplo:

bash
GET /api/v1/products?page=2&per_page=50

Ordenação ​

A maioria das listagens suporta ordenação:

ParâmetroPadrãoDescrição
sortvaria por recursoCampo para ordenação
directiondescasc ou desc

Exemplo:

bash
GET /api/v1/products?sort=price&direction=asc

Content-Type ​

Todas as requisições que enviam dados (POST, PUT) devem incluir:

Content-Type: application/json
Accept: application/json