Exceções de opções
Lista, consulta, cria e exclui as combinações de opções proibidas para um produto pela API legada.
Uma exceção é uma combinação de opções que o produto não aceita. Estas rotas, no contrato da Venddor 1.0, mantêm essa lista. Todas exigem um administrador, também respondem sem o prefixo de versão (/api/exceptions) e, nas leituras, exigem o product_id.
Listar as exceções de um produto
Devolve as combinações de opções que o produto não permite. A vitrine usa essa lista para impedir, por exemplo, "Tamanho G com Cor Dourada".
/api/v1.0/exceptionsAdminListar exceções de um produto
A resposta é uma lista JSON pura. Sem exceções devolve []. Autenticação: HTTP Basic com e-mail:chave_de_api de um administrador, ou Authorization: Bearer <JWT>.
Parâmetros de consulta
product_idstringobrigatórioExemplo de requisição
curl -u "$EMAIL:$API_KEY" \
"$BASE_URL/api/v1.0/exceptions?product_id=48e87591-5fb1-40da-b32e-edec3a8c596d"Resposta
[
{
"exception_id": "7c1e5b90-3d2a-4f68-8a11-52e6f0b4c9d3",
"product_id": "48e87591-5fb1-40da-b32e-edec3a8c596d",
"combination": {
"5f3c1d52-8a41-4a39-9d44-1c0a6c1b7e10": "-1",
"9e8d7c6b-0002-4aaa-9bbb-0000000000aa": "a1b2c3d4-0002-4aaa-9bbb-000000000002"
}
}
]Campos da resposta
exception_idstringproduct_idstringcombinationobjectid da opção -> id do valor proibido. O valor -1 significa "qualquer valor" daquela opção e -2 significa "nenhum valor" (a opção não escolhida).Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | product_id ausente | {"error":"product_id is required"} |
| 401 | Sem credenciais ou chave inválida | {"message":"Authentication required. Use HTTP Basic with email:api_key or Bearer <jwt>.","status":401} |
| 403 | O usuário não é administrador | {"message":"Forbidden: admin scope required","status":403} |
| 500 | Falha ao consultar ou gravar (por exemplo, id que não é um UUID) | {"error":"..."} |
Consultar uma exceção
Devolve uma exceção pelo id. É preciso informar também o produto, porque a busca é feita dentro das exceções dele.
/api/v1.0/exceptions/{id}AdminConsultar uma exceção
Autenticação: HTTP Basic com e-mail:chave_de_api de um administrador, ou Authorization: Bearer <JWT>.
Parâmetros de caminho
idstringobrigatórioParâmetros de consulta
product_idstringobrigatórioExemplo de requisição
curl -u "$EMAIL:$API_KEY" \
"$BASE_URL/api/v1.0/exceptions/7c1e5b90-3d2a-4f68-8a11-52e6f0b4c9d3?product_id=48e87591-5fb1-40da-b32e-edec3a8c596d"Resposta
{
"exception_id": "7c1e5b90-3d2a-4f68-8a11-52e6f0b4c9d3",
"product_id": "48e87591-5fb1-40da-b32e-edec3a8c596d",
"combination": {
"5f3c1d52-8a41-4a39-9d44-1c0a6c1b7e10": "-1",
"9e8d7c6b-0002-4aaa-9bbb-0000000000aa": "a1b2c3d4-0002-4aaa-9bbb-000000000002"
}
}Os campos são os mesmos da listagem.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | product_id ausente | {"error":"product_id is required"} |
| 401 | Sem credenciais ou chave inválida | {"message":"Authentication required. Use HTTP Basic with email:api_key or Bearer <jwt>.","status":401} |
| 403 | O usuário não é administrador | {"message":"Forbidden: admin scope required","status":403} |
| 404 | Nenhuma exceção com esse id no produto | {"error":"Exception not found"} |
| 500 | Falha ao consultar ou gravar (por exemplo, id que não é um UUID) | {"error":"..."} |
Criar uma exceção
Proíbe uma combinação de opções para um produto. Use para impedir combinações que você não fabrica ou não vende.
/api/v1.0/exceptionsAdminCriar uma exceção
Autenticação: HTTP Basic com e-mail:chave_de_api de um administrador, ou Authorization: Bearer <JWT>.
Corpo da requisição
product_idstringobrigatóriocombinationobjectobrigatórioid da opção -> id do valor a proibir. Use -1 para "qualquer valor" e -2 para "nenhum valor". Obrigatório e não vazio.Exemplo de requisição
curl -X POST -u "$EMAIL:$API_KEY" \
-H "Content-Type: application/json" \
-d '{"product_id": "48e87591-5fb1-40da-b32e-edec3a8c596d", "combination": {"5f3c1d52-8a41-4a39-9d44-1c0a6c1b7e10": "-1", "9e8d7c6b-0002-4aaa-9bbb-0000000000aa": "a1b2c3d4-0002-4aaa-9bbb-000000000002"}}' \
"$BASE_URL/api/v1.0/exceptions"Resposta
{
"exception_id": "7c1e5b90-3d2a-4f68-8a11-52e6f0b4c9d3"
}Campos da resposta
exception_idstringErros
| Status | Quando | Corpo |
|---|---|---|
| 400 | JSON inválido, product_id ausente ou combination ausente ou vazio | {"error":"Invalid JSON"} / {"error":"product_id is required"} / {"error":"combination is required"} |
| 401 | Sem credenciais ou chave inválida | {"message":"Authentication required. Use HTTP Basic with email:api_key or Bearer <jwt>.","status":401} |
| 403 | O usuário não é administrador | {"message":"Forbidden: admin scope required","status":403} |
| 500 | Falha ao consultar ou gravar (por exemplo, id que não é um UUID) | {"error":"..."} |
Excluir uma exceção
Remove a exceção, liberando de novo a combinação que ela proibia.
/api/v1.0/exceptions/{id}AdminExcluir uma exceção
Autenticação: HTTP Basic com e-mail:chave_de_api de um administrador, ou Authorization: Bearer <JWT>.
Parâmetros de caminho
idstringobrigatórioExemplo de requisição
curl -X DELETE -u "$EMAIL:$API_KEY" \
"$BASE_URL/api/v1.0/exceptions/7c1e5b90-3d2a-4f68-8a11-52e6f0b4c9d3"Resposta
HTTP/1.1 204 No ContentErros
| Status | Quando | Corpo |
|---|---|---|
| 401 | Sem credenciais ou chave inválida | {"message":"Authentication required. Use HTTP Basic with email:api_key or Bearer <jwt>.","status":401} |
| 403 | O usuário não é administrador | {"message":"Forbidden: admin scope required","status":403} |
| 500 | Falha ao consultar ou gravar (por exemplo, id que não é um UUID) | {"error":"..."} |