Proxy para a API real, mock para o que falta

Seu mock de API encaminha para o backend real e mocka os endpoints que ele ainda não serve. Dados reais onde existem, dados gerados onde não.

  • Real e mockado juntos
  • Uma URL só para o app
  • Cache de respostas
  • Tudo gravado
api.mockz.io/gh/acme/payments
200GET/v1/customersupstream23 ms
200GET/v1/charges/ch_71upstream19 ms
200GET/v1/payoutsgerado4 ms
201POST/v1/refundsgerado6 ms
Uma URL só. Cada resposta carrega X-Mockzilla-Source, então o seu cliente sabe qual recebeu.

O que é um proxy com fallback para o mock?

O servidor mock tenta primeiro o seu backend real e repassa o que ele responder, status e headers incluídos. Tudo o que esse backend não trata é respondido pelo spec em vez de falhar.

Seu app chama uma URL só. Quais respostas vieram da API real e quais foram geradas é decidido no servidor mock, não no seu código, então nada muda do seu lado quando a metade que faltava entrar no ar.

Metade de cada integração já existe

Trabalho real quase nunca é tudo ou nada. Três endpoints estão no ar, dois ainda estão sendo feitos, e um só se comporta em um ambiente que você não alcança. Mockar tudo joga fora o comportamento real que você já tem, e não mockar nada te deixa travado.

Proxy com fallback fica com os dois. Os endpoints que existem se comportam exatamente como em produção, e os que não existem ainda devolvem algo válido.

Upstream primeiro

Status, headers e body voltam intactos. Seu cliente não tem como saber que a requisição passou por um mock.

Fallback para o mock

Você não precisa dizer quais endpoints faltam. Tudo o que o upstream não responder cai no spec.

Cache de respostas

Guarde as respostas de GET em cache para a mesma requisição devolver o mesmo body, mesmo com os dados por trás da API real mudando.

Perguntas

O que acontece quando a API real cai?
A requisição cai no mock, então o seu trabalho não trava por causa da queda de outra pessoa.
Dá para ver de onde veio cada resposta?
Dá, em todas. O X-Mockzilla-Source volta como upstream, cache ou generated, então o seu cliente sabe sem perguntar e um teste pode afirmar em cima disso. O histórico de requisições também grava as chamadas.
Preciso mudar meu app para usar?
Não. A URL base para a qual você já aponta continua a mesma, e nada mais no seu cliente muda.

Traga um spec. Leve um servidor mock.

Começar não custa nada. Infraestrutura dedicada quando precisar.