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
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.