Introdução ao Dev Proxy
O Dev Proxy é uma ferramenta de linha de comando que ajuda a simular comportamentos e erros de APIs de nuvem para ajudá-lo a criar aplicativos resilientes.
Neste tutorial, você aprenderá a instalar, executar e configurar o Dev Proxy.
Se você tiver alguma dificuldade, não hesite em nos contatar levantando um novo problema e teremos prazer em ajudá-lo.
Instalar o Dev Proxy
A maneira mais fácil de instalar o Dev Proxy é usando winget. Como alternativa, você pode instalar o Dev Proxy manualmente.
Para instalar o Dev Proxy usando winget, execute o seguinte comando:
winget install Microsoft.DevProxy --silent
Importante
O instalador do Dev Proxy adiciona uma nova entrada ao PATH. Para usar o Dev Proxy após a instalação, você deve reiniciar o prompt de comando para garantir que as variáveis de ambiente PATH tenham sido atualizadas.
Observação
Para experimentar os recursos de visualização mais recentes, instale a versão beta do Dev Proxy.
Para instalar o Dev Proxy usando winget, execute o seguinte comando:
winget install Microsoft.DevProxy.Beta --silent
Para executar a versão beta do Dev Proxy, use devproxy-beta
A maneira mais fácil de instalar o Dev Proxy é usando o Homebrew. Como alternativa, você pode instalar o Dev Proxy manualmente.
Para instalar o Dev Proxy usando o Homebrew, execute os seguintes comandos:
brew tap microsoft/dev-proxy
brew install dev-proxy
Observação
Para experimentar os recursos de visualização mais recentes, instale a versão beta do Dev Proxy.
Para instalar o Dev Proxy usando o Homebrew, execute os seguintes comandos:
brew tap microsoft/dev-proxy
brew install dev-proxy-beta
Para executar a versão beta do Dev Proxy, use devproxy-beta
A maneira mais fácil de instalar o Dev Proxy é usando o script de instalação. Como alternativa, você pode instalar o Dev Proxy manualmente.
Para instalar o Dev Proxy usando o script de instalação, execute os seguintes comandos:
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"
Se você usar o PowerShell, execute o seguinte comando:
(Invoke-WebRequest https://aka.ms/devproxy/setup.ps1).Content | Invoke-Expression
Observação
Para experimentar os recursos de visualização mais recentes, instale a versão beta do Dev Proxy.
Para instalar o Dev Proxy usando o script de instalação, execute os seguintes comandos:
bash -c "$(curl -sL https://aka.ms/devproxy/setup-beta.sh)"
Se você usar o PowerShell, execute o seguinte comando:
(Invoke-WebRequest https://aka.ms/devproxy/setup-beta.ps1).Content | Invoke-Expression
Para executar a versão beta do Dev Proxy, use devproxy-beta
Iniciar o Dev Proxy pela primeira vez
Na primeira vez que você iniciar o Dev Proxy em seu computador, há algumas etapas a serem seguidas para garantir que o Dev Proxy possa interceptar solicitações de seu computador e responder com êxito. Você não precisará repetir essas etapas após a primeira execução.
- Inicie o Dev Proxy. Abra uma sessão de prompt de comando. Insira
devproxy
e pressione ENTER. - Certificado de confiança. O Dev Proxy instala um certificado chamado
Dev Proxy CA
. Um aviso aparece. SelecioneYes
para confirmar que deseja instalar o certificado. O Dev Proxy usa esse certificado para descriptografar o tráfego HTTPS enviado do seu computador. - Permitir acesso ao firewall. O Firewall do Windows bloqueia o proxy. Um aviso aparece. Selecione
Allow access
o botão para permitir o tráfego através do firewall.
- Inicie o Dev Proxy. Abra uma sessão de prompt de comando. Insira
devproxy
e pressione ENTER. - Certificado de confiança. O Dev Proxy instala um certificado chamado
Dev Proxy CA
, que ele usa para descriptografar o tráfego HTTPS enviado de sua máquina. Um aviso aparece. Pressione y para confirmar que deseja confiar no certificado. - Aceite conexões de entrada. Um aviso aparece. Selecione
Allow
para confirmar.
Inicie o Dev Proxy. Abra uma sessão de prompt de comando. Insira
devproxy
e pressione ENTER.Certificado de confiança. O Dev Proxy usa um certificado SSL personalizado para descriptografar o tráfego HTTPS enviado de sua máquina.
Importante
As instruções a seguir são para o Ubuntu. Para outras distribuições Linux, as etapas podem ser diferentes.
Para instalar e confiar no certificado, em um novo prompt de comando, execute os seguintes comandos:
# Export Dev Proxy root certificate openssl pkcs12 -in ~/.config/dev-proxy/rootCert.pfx -clcerts -nokeys -out dev-proxy-ca.crt -passin pass:"" # Install the certificate sudo cp dev-proxy-ca.crt /usr/local/share/ca-certificates/ # Update certificates sudo update-ca-certificates
O prompt de comando exibe a seguinte saída:
info 8 error responses loaded from devproxy-errors.json
info Dev Proxy API listening on http://localhost:8897...
info Dev Proxy Listening on 127.0.0.1:8000...
Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy
Por padrão, o Dev Proxy é configurado para:
- Interceptar solicitações feitas a qualquer ponto de extremidade da API de espaço reservado JSON
- Simule respostas de erro de API e limitação de API com uma taxa de falha de 50%
Interceptar solicitações
O Dev Proxy interceptará solicitações feitas a URLs conhecidas de qualquer aplicativo em sua máquina. Quando uma solicitação é detectada, o Dev Proxy passa a solicitação para a API (não executa nenhuma ação) ou retorna uma resposta.
- Envie uma solicitação para a API JSON Placeholder da linha de comando e volte para o processo de proxy para visualizar a saída.
No PowerShell, use o Invoke-WebRequest
cmdlet para enviar uma solicitação GET para a API de espaço reservado JSON.
Invoke-WebRequest -Uri https://jsonplaceholder.typicode.com/posts
Se você usar curl
o , envie uma solicitação GET para a API de espaço reservado JSON usando o comando a seguir.
curl -ikx http://localhost:8000 https://jsonplaceholder.typicode.com/posts
Você também pode usar um cliente de API como o Postman para enviar uma solicitação GET para o https://jsonplaceholder.typicode.com/posts
.
Uma entrada é mostrada com algumas informações básicas sobre a solicitação de entrada e a ação que o Dev Proxy executou. O Dev Proxy simula uma resposta de erro com 50% de chance. Se sua solicitação não retornar um erro, o Dev Proxy a passará.
req ╭ GET https://jsonplaceholder.typicode.com/posts
api ╰ Passed through
- Repita o envio de solicitações para a API JSON Placeholder da linha de comando, até que uma resposta de erro seja retornada.
req ╭ GET https://jsonplaceholder.typicode.com/posts
api ╰ Passed through
req ╭ GET https://jsonplaceholder.typicode.com/posts
oops ╰ 403 Forbidden
Quando o Dev Proxy retorna uma resposta de erro, um chaos
rótulo é exibido na entrada.
- Tente enviar solicitações para outros endpoints disponíveis na API JSON Placeholder
https://jsonplaceholder.typicode.com/posts
https://jsonplaceholder.typicode.com/posts/1
https://jsonplaceholder.typicode.com/posts/1/comments
https://jsonplaceholder.typicode.com/comments?postId=1
Parar o Dev Proxy com segurança
Quando você não precisar mais que o Dev Proxy esteja em execução, deverá sempre interrompê-lo com segurança.
- Pressione Ctrl + C para interromper o Dev Proxy com segurança.
Se você desligar a sessão do prompt de comando, o Dev Proxy não cancelará o registro corretamente como o proxy do sistema e você poderá enfrentar alguns problemas comuns.
Atualize os URLs a serem observados
Por padrão, o Dev Proxy é configurado para interceptar qualquer solicitação feita à API JSON Placeholder. Você pode configurar o Dev Proxy para interceptar solicitações para qualquer API HTTP.
- Abra o arquivo de configuração do Dev Proxy executando na linha de comando:
devproxy config
. - Localize a
urlsToWatch
matriz.
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
],
A urlsToWatch
matriz representa as URLs conhecidas. O Dev Proxy observa as solicitações da entrada atual para qualquer ponto de extremidade. A entrada usa um asterisco após a URL como um curinga. Adicionar mais entradas a essa matriz expande as URLs que o Dev Proxy observa.
Vamos considerar que você não deseja que o Dev Proxy intercepte solicitações feitas a um ponto de extremidade específico.
- Adicione uma nova entrada à
urlsToWatch
matriz.
"urlsToWatch": [
"!https://jsonplaceholder.typicode.com/posts/2",
"https://jsonplaceholder.typicode.com/*"
],
O ponto de exclamação no início da URL informa ao Dev Proxy para ignorar todas as solicitações que correspondam a essa URL. Você pode misturar e combinar pontos de exclamação e asteriscos em um URL.
- Na linha de comando, insira
devproxy
e pressione Enter para iniciar o Dev Proxy. - Envie uma solicitação para
https://jsonplaceholder.typicode.com/posts/2
a partir da linha de comando e visualize a saída.
Quando uma URL ignorada é correspondida a uma solicitação, o Dev Proxy não processa a solicitação e, portanto, nenhuma saída é exibida.
A ordem em que as URLs são listadas na urlsToWatch
matriz é importante. O Dev Proxy processa essas URLs em ordem. Quando um URL corresponde, ele não é processado novamente. Portanto, colocar o URL primeiro garante que a solicitação seja ignorada antes que o próximo URL seja processado.
Taxa de falha de alteração
Por padrão, o Proxy de Desenvolvimento é configurado para falhar em solicitações com 50% de chance de URLs que estão sendo observadas. Você pode aumentar ou diminuir a chance de uma solicitação retornar uma resposta de erro.
Vamos atualizar a taxa de falha para que cada solicitação à API de espaço reservado JSON retorne uma resposta de erro.
- Abra o arquivo de configuração do Dev Proxy executando na linha de comando:
devproxy config
. - Localize a propriedade
rate
e atualize o valor de50
para100
.
O devproxyrc.json
arquivo contém definições de configuração que são usadas quando você inicia o Dev Proxy. Ao alterar as definições de configuração, você deve sempre parar e iniciar o Dev Proxy para que as alterações sejam mantidas.
- Na linha de comando, insira
devproxy
e pressione Enter para iniciar o Dev Proxy. - Envie uma solicitação para a API JSON Placeholder da linha de comando e exiba a saída.
Como alternativa, você pode substituir as definições de configuração em runtime usando a opção ao iniciar o --failure-rate
Dev Proxy.
devproxy --failure-rate 100
- Pressione Ctrl + C para interromper o Dev Proxy com segurança.
Simular limitação
Por padrão, o Dev Proxy retorna um intervalo de respostas de erro genéricas 400 e 500. Você pode personalizar essas respostas de erro de acordo com suas próprias necessidades.
O Dev Proxy usa plug-ins para habilitar diferentes comportamentos de API, por padrão, habilitamos dois plug-ins para você.
- O plug-in GenericRandomErrorPlugin fornece a capacidade do Dev Proxy de responder com uma resposta de erro.
- O plug-in RetryAfterPlugin fornece a capacidade do Dev Proxy de injetar um valor dinâmico no cabeçalho Retry-After na resposta de erro.
Vamos alterar a configuração para que o Dev Proxy sempre retorne uma resposta de 429 Too Many requests
erro para simular a limitação.
Primeiro, vamos localizar o local do arquivo que contém as definições de erro.
- Abra o arquivo de configuração do Dev Proxy executando na linha de comando:
devproxy config
. plugins
Na matriz, localize a entrada do plug-in GenericRandomErrorPlugin. Observe o valor daconfigSection
propriedade.- Mais abaixo no arquivo, localize o
genericRandomErrorPlugin
objeto. Observe o valor daerrorsFile
propriedade.
Dica
O local do arquivo de erros também é exibido na saída quando você inicia o Dev Proxy.
- Na pasta de instalação do Dev Proxy, abra
devproxy-errors.json
em um editor de texto. - Remova todas as entradas de resposta na
responses
matriz, exceto a429
resposta.
{
"$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.20.0/genericrandomerrorplugin.schema.json",
"errors": [
{
"request": {
"url": "https://jsonplaceholder.typicode.com/*"
},
"responses": [
{
"statusCode": 429,
"body": {
"message": "Too Many Requests",
"details": "The user has sent too many requests in a given amount of time (\"rate limiting\")."
},
"headers": {
"Retry-After": "@dynamic"
}
}
]
}
]
}
- Na linha de comando, insira
devproxy
e pressione Enter para iniciar o Dev Proxy. - Envie uma solicitação para a API JSON Placeholder da linha de comando e exiba a saída.
req ╭ GET https://jsonplaceholder.typicode.com/posts
oops ╰ 429 TooManyRequests
- Pressione Ctrl + C para interromper o Dev Proxy com segurança.
Próxima etapa
Saiba como usar o Dev Proxy para simular erros aleatórios para seu próprio aplicativo.