Referência da CLI
A CLI mockzilla é o servidor mock de código aberto. Ela roda na sua máquina, não precisa de conta e funciona offline. Esta página lista o que você pode digitar.
Veja Instalar a CLI para colocar ela na sua máquina.
Servir um mock
Um argumento, e o que você apontar decide o que roda:
mockzilla petstore.yml # um arquivo de spec
mockzilla https://petstore3.swagger.io/api/v3/openapi.json # um spec por URL
mockzilla ./services/ # uma pasta
mockzilla petstore.mockz # um pacote, do disco ou de uma URL
mockzilla response.json # uma resposta estática, servida em GET /O servidor sobe na porta 2200 com o explorador de API na raiz. Os arquivos carregados do disco ficam sob observação: salve um spec, um config.yml ou um context.yml e aquele serviço é trocado ao vivo, sem reiniciar.
Uma pasta é lida como um monte de specs, como um serviço único, ou como uma árvore services/.
Veja Simulações portable para as três formas de pasta e o que vai em cada uma.
Flags
--port Nescolhe a porta.0pega qualquer porta livre que a máquina oferecer. Por padrão2200.--ready-stampimprime uma linha JSON assim que o servidor está escutando, para os scripts que esperam por ele.
Mais quatro valem quando existe exatamente um serviço registrado, que é o caso de um arquivo de spec único ou de uma pasta de serviço única:
--latency Datrasa cada resposta por uma duração, tipo100msou1s.--mount PATHdefine o prefixo de URL em que o serviço responde, tipopets/v2.--errors RULESresponde uma parte das requisições com um status de erro.p5=500,p10=503manda 500 para 5 por cento das requisições e 503 para os 5 seguintes.--context FILEaponta para um YAML de contexto, os valores de substituição planos que dão forma aos dados gerados.
Quanto o servidor registra é uma variável de ambiente, não um flag. LOG_LEVEL aceita debug, info, warn, error ou none, e o padrão é info.
Olhar dentro de um spec
mockzilla info petstore.yml
mockzilla info https://petstore3.swagger.io/api/v3/openapi.json
mockzilla info petstore.mockzImprime um objeto JSON e sai: título, versão, versão do OpenAPI, quantidade de endpoints, e cada caminho com o método e o id de operação dele. Um pacote .mockz é desempacotado e resumido do mesmo jeito, então dá para ler o que um arquivo guarda antes de servir ele.
Simplificar um spec
mockzilla simplify openapi.ymlDescarta as propriedades opcionais que usam anyOf ou oneOf, reduz uma união obrigatória à primeira variante dela, e tira os campos de extensão x-*. Os exemplos ficam como estão. O resultado vai para o stdout a não ser que --output nomeie um arquivo.
As propriedades opcionais são cortadas de um de dois jeitos:
--optional Nmantém exatamente N por schema.--optional 0descarta todas.--optional-min A --optional-max Bmantém uma quantidade sorteada nessa faixa. Os dois flags andam juntos.
Deixe os dois de fora e toda propriedade opcional sobrevive. Eles não podem ser combinados.
--output FILE, ou-o, escreve num arquivo em vez do stdout.--config FILEroda antes uma configuração de codegen: filtra por caminho, tag ou id de operação, aplica deltas de OpenAPI Overlay, e depois descarta as refs que isso deixou soltas.
Passe - como spec para ler do stdin:
curl -s https://example.com/openapi.json | mockzilla simplify -O app faz o mesmo trabalho em um spec subido, em Opções do spec.
Veja Configurações do serviço.
Empacotar uma pasta
mockzilla pack ./Escreve <pasta>.mockz ao lado da pasta: cada serviço que ele encontrou, mais um manifesto que nomeia cada um, a montagem e os arquivos dele. Sirva o resultado com mockzilla mocks.mockz, ou entregue para alguém que vá servir.
--output FILE, ou-o, escreve o arquivo em outro lugar.--namee--descriptionvão para o manifesto.--min-versionregistra a versão mínima da CLI que consegue carregar o arquivo.--skip-gitdeixa de fora o remoto, a ref e o commit do git, que são embutidos sempre que a pasta está dentro de uma árvore de trabalho do git.
Este é o arquivo que a GitHub Action empacota e sobe a cada push.
Veja GitHub Action.
Os projetos de codegen rodam sozinhos
Um projeto de codegen compila o próprio servidor. O go build produz um binário e esse binário serve o projeto, então a CLI não participa de rodar ele. Apontar o mockzilla para a pasta do projeto lê ela como specs.
Veja Simulações codegen.
Rodar uma simulação da sua conta
Uma simulação que você montou no app roda localmente no mesmo motor. Aponte a CLI para o link de compartilhamento dela:
mockzilla https://mockz.io/fxygibahO arquivo .mockz dela funciona igual, direto do disco e sem rede nenhuma. A visão Rodar localmente da simulação escreve os dois comandos para você, já preenchidos com o link dela.
Veja Rodar uma simulação localmente.
Versão e ajuda
mockzilla --version
mockzilla --help
mockzilla simplify --helpCada subcomando traz o próprio --help com os flags acima e os padrões deles.