Um servidor mock para cada pull request

Adicione um passo a um workflow do GitHub e cada branch e pull request ganha a própria URL de mock de API. Quem revisa testa a integração antes do merge em vez de descobrir depois.

  • Uma URL por branch
  • Atualizado a cada push
  • Removido quando o PR fecha
  • GitHub Action
mockzilla comentou em #218checkout-v2

O servidor mock deste pull request está no ar.

https://api.mockz.io/gh/acme/payments/checkout-v2/
Atualizado a cada push. Removido quando este pull request fechar.

O que é um ambiente de preview por PR?

Um servidor mock que existe para uma branch só. Adicione a action do Mockzilla a um workflow que você já tem, e cada push faz o deploy dos specs do repositório e publica a URL da branch no pull request dela.

Ele segue a branch, e vai embora com ela. Feche o pull request e o deploy é removido, então nada velho fica respondendo.

Não dá para saber olhando o diff

Um diff em um arquivo OpenAPI diz que um campo foi renomeado. Ele não diz se o cliente ainda funciona, e o único mock compartilhado para o qual todo mundo aponta já foi para a branch de outra pessoa.

Uma URL por pull request transforma a dúvida em algo que dá para chamar. Quem revisa roda o cliente contra a API daquela branch antes do merge.

Uma URL por branch e pull request

Cada pull request ganha um endereço só dele, então duas pessoas revisando duas branches nunca olham para o mesmo mock.

Atualizado a cada push

Mude o spec na branch e o mock por trás daquela URL acompanha no próximo push. Ninguém precisa fazer deploy de nada.

Limpeza automática

Quando o pull request fecha, o servidor mock dele vai junto. Sem URL velha e sem nada rodando à toa.

Perguntas

Preciso de uma conta antes?
Não. O primeiro push registra o repositório e o mock responde antes de alguém ter se cadastrado. Entre com o GitHub depois e os mocks já estão lá, com histórico, replays e uso.
O que acontece quando o pull request fecha?
O deploy dele vai junto, então não sobra nada rodando e nenhuma URL continua respondendo depois que a branch some.
Dá para ter também uma URL permanente?
Dá. A branch padrão mantém uma URL estável própria, e as por branch ficam ao lado dela.

Traga um spec. Leve um servidor mock.

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