Introdução ao Proxy de Desenvolvimento
O Proxy de Desenvolvimento é uma ferramenta de linha de comando que ajuda você 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 Proxy de Desenvolvimento.
Se você tiver dificuldades, não hesite em entrar em contato conosco levantando um novo problema e estamos felizes em ajudá-lo.
Instalar o Proxy de Desenvolvimento
A maneira mais fácil de instalar o Proxy de Desenvolvimento é usando winget. Como alternativa, você pode instalar o Proxy de Desenvolvimento manualmente.
Para instalar o Proxy de Desenvolvimento usando winget, execute o seguinte comando:
winget install Microsoft.DevProxy --silent
Importante
O instalador de Proxy de Desenvolvimento adiciona uma nova entrada ao PATH. Para usar o Proxy de Desenvolvimento 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 Proxy de Desenvolvimento.
Para instalar o Proxy de Desenvolvimento usando winget, execute o seguinte comando:
winget install Microsoft.DevProxy.Beta --silent
Para executar a versão beta do uso do Proxy de Desenvolvimento devproxy-beta
A maneira mais fácil de instalar o Proxy de Desenvolvimento é usando Homebrew. Como alternativa, você pode instalar o Proxy de Desenvolvimento manualmente.
Para instalar o Proxy de Desenvolvimento usando 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 Proxy de Desenvolvimento.
Para instalar o Proxy de Desenvolvimento usando Homebrew, execute os seguintes comandos:
brew tap microsoft/dev-proxy
brew install dev-proxy-beta
Para executar a versão beta do uso do Proxy de Desenvolvimento devproxy-beta
Iniciar o Proxy de Desenvolvimento pela primeira vez
Na primeira vez que você iniciar o Proxy de Desenvolvimento em seu computador, há algumas etapas a seguir para garantir que o Proxy de Desenvolvimento possa interceptar solicitações do computador e responder com êxito. Você não precisará repetir essas etapas após a primeira execução.
- Inicie o Proxy de Desenvolvimento. Abra uma sessão de prompt de comando. Insira
devproxy
e pressione ENTER. - Certificado de confiança. O Proxy de Desenvolvimento instala um certificado chamado
Dev Proxy CA
. Um aviso mostra. SelecioneYes
para confirmar se deseja instalar o certificado. O Proxy de Desenvolvimento usa esse certificado para descriptografar o tráfego HTTPS enviado do computador. - Permitir acesso ao firewall. O Firewall do Windows bloqueia o proxy. Um aviso mostra. Selecione
Allow access
o botão para permitir o tráfego por meio do firewall.
- Inicie o Proxy de Desenvolvimento. Abra uma sessão de prompt de comando. Insira
devproxy
e pressione ENTER. - Certificado de confiança. O Proxy de Desenvolvimento instala um certificado chamado
Dev Proxy CA
, que ele usa para descriptografar o tráfego HTTPS enviado do computador. Um aviso mostra. Pressione y para confirmar se você deseja confiar no certificado. - Aceite conexões de entrada. Um aviso mostra. Selecione
Allow
para confirmar.
O prompt de comando exibe a seguinte saída:
8 error responses loaded from devproxy-errors.json
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 Proxy de Desenvolvimento é configurado para:
- Interceptar solicitações feitas a qualquer ponto de extremidade da API de Espaço Reservado JSON
- Simular respostas de erro de API e limitação de API com uma taxa de falha de 50%
Interceptar solicitações
O Proxy de Desenvolvimento interceptará solicitações feitas a URLs conhecidas de qualquer aplicativo em seu computador. Quando uma solicitação é detectada, o Proxy de Desenvolvimento passa a solicitação para a API (não execute nenhuma ação) ou retorne uma resposta.
- Envie uma solicitação para a API de Espaço Reservado JSON da linha de comando e volte para o processo de proxy para exibir 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
, envie uma solicitação GET para a API de Espaço Reservado JSON usando o comando a seguir.
curl -ix 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 https://jsonplaceholder.typicode.com/posts
.
Uma entrada é mostrada com algumas informações básicas sobre a solicitação de entrada e a ação executada pelo Proxy de Desenvolvimento. O Proxy de Desenvolvimento simula uma resposta de erro com 50% de chance. Se sua solicitação não retornar um erro, o Proxy de Desenvolvimento o passará.
request GET https://jsonplaceholder.typicode.com/posts
api ╭ Passed through
╰ GET https://jsonplaceholder.typicode.com/posts
- Repita o envio de solicitações para a API de Espaço Reservado JSON da linha de comando até que uma resposta de erro seja retornada.
request GET https://jsonplaceholder.typicode.com/posts
api ╭ Passed through
╰ GET https://jsonplaceholder.typicode.com/posts
request GET https://jsonplaceholder.typicode.com/posts
chaos ╭ 403 Forbidden
╰ GET https://jsonplaceholder.typicode.com/posts
Quando o Proxy de Desenvolvimento retorna uma resposta de erro, um chaos
rótulo é exibido na entrada.
- Tente enviar solicitações para outros pontos de extremidade disponíveis na API de Espaço Reservado JSON
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 Proxy de Desenvolvimento com segurança
Quando você não precisar mais que o Proxy de Desenvolvimento esteja em execução, você sempre deve interrompê-lo com segurança.
- Pressione Ctrl + C para interromper com segurança o Proxy de Desenvolvimento.
Se você desligar a sessão de prompt de comando, o Proxy de Desenvolvimento não cancelará o registro corretamente como o proxy do sistema e você poderá enfrentar alguns problemas comuns.
Atualizar as URLs para watch
Por padrão, o Proxy de Desenvolvimento é configurado para interceptar qualquer solicitação feita à API de Espaço Reservado JSON. Você pode configurar o Proxy de Desenvolvimento para interceptar solicitações para qualquer API HTTP.
- Em um prompt de comando, execute
brew list dev-proxy
para localizar a pasta de instalação. - Abra a pasta de instalação proxy de desenvolvimento no Finder.
- Na pasta de instalação do Proxy de Desenvolvimento, abra
devproxyrc.json
em um editor de texto. - Localize a
urlsToWatch
matriz.
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
],
A urlsToWatch
matriz representa as URLs conhecidas. O Proxy de Desenvolvimento observa as solicitações da entrada atual para qualquer ponto de extremidade. A entrada usa um asterisco após a URL como curinga. Adicionar mais entradas a essa matriz expande as URLs que o Proxy de Desenvolvimento observa.
Vamos considerar que você não deseja que o Proxy de Desenvolvimento intercepte solicitações feitas em 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 Proxy de Desenvolvimento para ignorar quaisquer solicitações que correspondam a essa URL. Você pode misturar e corresponder pontos de exclamação e asteriscos em uma URL.
- Na linha de comando, insira
devproxy
e pressione Enter para iniciar o Proxy de Desenvolvimento. - Envie uma solicitação para
https://jsonplaceholder.typicode.com/posts/2
da linha de comando e exiba a saída.
Uma entrada é mostrada confirmando que a solicitação foi ignorada e passada para a API.
request GET https://jsonplaceholder.typicode.com/posts/2
api ╭ Passed through
╰ GET https://jsonplaceholder.typicode.com/posts/2
A ordem na qual as URLs são listadas na urlsToWatch
matriz é importante. O Proxy de Desenvolvimento processa essas URLs na ordem. Quando uma URL corresponde, ela não é processada novamente. Portanto, colocar a URL primeiro garante que a solicitação seja ignorada antes que a próxima URL seja processada.
Taxa de falha de alteração
Por padrão, o Proxy de Desenvolvimento é configurado para fazer fail requests com uma chance de 50% 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 para a API de Espaço Reservado JSON retorne uma resposta de erro.
- Na pasta de instalação do Proxy de Desenvolvimento, abra
devproxyrc.json
em um editor de texto. - Localize a propriedade
rate
e atualize o valor de50
para100
.
O devproxyrc.json
arquivo contém as configurações usadas quando você inicia o Proxy de Desenvolvimento. Ao alterar as configurações, você sempre deve parar e iniciar o Proxy de Desenvolvimento para que as alterações sejam persistentes.
- Na linha de comando, insira
devproxy
e pressione Enter para iniciar o Proxy de Desenvolvimento. - Envie uma solicitação para a API de Espaço Reservado JSON da linha de comando e exiba a saída.
Como alternativa, você pode substituir as configurações em runtime usando a opção ao iniciar o --failure-rate
Proxy de Desenvolvimento.
devproxy --failure-rate 100
- Pressione Ctrl + C para interromper com segurança o Proxy de Desenvolvimento.
Simular limitação
Por padrão, o Proxy de Desenvolvimento retorna um intervalo de respostas de erro genéricas de 400 e 500. Você pode personalizar essas respostas de erro para suas próprias necessidades.
O Proxy de Desenvolvimento 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 de o Proxy de Desenvolvimento responder com uma resposta de erro.
- O plug-in RetryAfterPlugin fornece a capacidade de o Proxy de Desenvolvimento injetar um valor dinâmico no cabeçalho Retry-After na resposta de erro.
Vamos alterar a configuração para que o Proxy de Desenvolvimento sempre retorne uma 429 Too Many requests
resposta de erro para simular a limitação.
Primeiro, vamos localizar o local do arquivo que contém as definições de erro.
- Na pasta de instalação do Proxy de Desenvolvimento, abra
devproxyrc.json
em um editor de texto. plugins
Na matriz, localize a entrada para o 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 Proxy de Desenvolvimento.
- Na pasta de instalação do Proxy de Desenvolvimento, 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.14.1/genericrandomerrorplugin.schema.json",
"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 Proxy de Desenvolvimento. - Envie uma solicitação para a API de Espaço Reservado JSON da linha de comando e exiba a saída.
request GET https://jsonplaceholder.typicode.com/posts
chaos ╭ 429 TooManyRequests
╰ GET https://jsonplaceholder.typicode.com/posts
- Pressione Ctrl + C para interromper com segurança o Proxy de Desenvolvimento.
Próxima etapa
Saiba como usar o Proxy de Desenvolvimento para simular erros aleatórios para seu próprio aplicativo.
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de