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?

Abrir no construtor de mocks para ajustar primeiro

Combina bem com este guia: Simular uma resposta de erro específica

Modelos relacionados

← Todos os modelos

Última atualização: 2026-10-17