Mockar um erro problem+json (RFC 9457)
Um mock GET que retorna um erro de validação 422 application/problem+json moldado de acordo com a RFC 9457.
A RFC 9457 define application/problem+json, um formato padrão para corpos de erro HTTP com type, title, status e detail. Este template retorna um documento de problema 422 com uma extensão de errors em nível de campo, para que você possa construir e testar o tratamento de erros contra o formato em vez de qualquer JSON ad-hoc que seu backend por acaso emite hoje.
Substitui um endpoint de API de terceiros.
Payload de resposta
{"type":"https://quickmock.dev/problems/validation-error","title":"Your request parameters didn't validate","status":422,"detail":"The 'email' field must be a valid email address.","instance":"{{mock.url}}/requests/38f0","errors":[{"field":"email","message":"must be a valid email address"}]}
Campos que valem a pena conhecer
| Campo | O que significa |
|---|---|
| type | Uma URI identificando o tipo de problema — é um endereço de documentação, não necessariamente um link funcional. |
| title | Um resumo curto e legível por humanos do problema. |
| status | Reflete o status da resposta HTTP, mantido no corpo para clientes que o registram separadamente. |
| detail | Uma explicação específica para esta ocorrência; edite para corresponder à falha que você está testando. |
| errors | Um array de extensão não padrão com erros em nível de campo, do tipo que APIs no estilo do GitHub ou Stripe costumam adicionar. |
Criar o mock
curl -X POST https://quickmock.dev/api/mocks \
-H 'Content-Type: application/json' \
-d '{
"method": "GET",
"response_status": 422,
"content_type": "application/problem+json",
"response_body": "{\"type\":\"https://quickmock.dev/problems/validation-error\",\"title\":\"Your request parameters didn't validate\",\"status\":422,\"detail\":\"The 'email' field must be a valid email address.\",\"instance\":\"{{mock.url}}/requests/38f0\",\"errors\":[{\"field\":\"email\",\"message\":\"must be a valid email address\"}]}"
}'
Chame-o
curl https://quickmock.dev/m/<slug>
O que você obtém
GET /m/<slug> -> 422 application/problem+json
an RFC 9457 problem document with a custom errors[] extension
Como isso difere do original
Este é um erro de validação fixo — status, detail e a extensão errors[] são todos fixos (hardcoded), então edite o corpo da resposta para reproduzir a falha exata que seu cliente precisa lidar em vez de um 422 genérico.
Fontes
FAQ
- O que é problem+json e por que usá-lo?
- É o formato de erro padronizado na RFC 9457: um pequeno conjunto de campos acordados para que clientes e logs possam ler erros de qualquer API da mesma maneira, em vez de cada serviço inventar seu próprio envelope de erro.
- Por que o status aparece tanto no corpo quanto na resposta?
- O status do corpo reflete o status HTTP para que um documento de erro registrado ou encaminhado continue significativo assim que for separado da resposta. A RFC 9457 exige que os dois concordem, e uma incompatibilidade é um bug que vale a pena afirmar.
- O array errors faz parte do padrão?
- Não. A RFC 9457 permite membros de extensão, e errors é um — o detalhe em nível de campo que APIs no estilo do GitHub e Stripe geralmente adicionam. Seu cliente deve tratar os membros padrão como garantidos e as extensões como opcionais.
Pronto para usar?
Combina bem com este guia: Simular uma resposta de erro específica
Modelos relacionados
Última atualização: 2026-10-17