Partilhar via


Introdução ao Dev Proxy

O Dev Proxy é uma ferramenta de linha de comando que ajuda a simular comportamentos e erros de APIs na nuvem para ajudá-lo a criar aplicativos resilientes.

Neste tutorial, você aprenderá a instalar, executar e configurar o Dev Proxy.

Se tiver alguma dificuldade, não hesite em contactar-nos levantando uma nova questão e teremos todo o gosto 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, reinicie o prompt de comando para garantir que as variáveis de ambiente PATH tenham sido atualizadas.

Nota

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

Nota

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

Nota

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 sua máquina, há algumas etapas a serem seguidas para garantir que o Dev Proxy possa intercetar solicitações de sua máquina e responder com êxito. Você não precisará repetir essas etapas após a primeira execução.

  1. Inicie o Dev Proxy. Abra uma sessão de prompt de comando. Digite devproxy e pressione Enter.
  2. Certificado de confiança. O Dev Proxy instala um certificado chamado Dev Proxy CA. Aparece um aviso. Selecione Yes esta opção para confirmar que deseja instalar o certificado. O Dev Proxy usa esse certificado para descriptografar o tráfego HTTPS enviado da sua máquina.
  3. Permitir acesso ao firewall. O Firewall do Windows bloqueia o proxy. Aparece um aviso. Selecione Allow access o botão para permitir o tráfego através do firewall.
  1. Inicie o Dev Proxy. Abra uma sessão de prompt de comando. Digite devproxy e pressione Enter.
  2. Certificado de confiança. O Dev Proxy instala um certificado chamado Dev Proxy CA, que ele usa para descriptografar o tráfego HTTPS enviado da sua máquina. Aparece um aviso. Pressione y para confirmar que deseja confiar no certificado.
  3. Aceite conexões de entrada. Aparece um aviso. Selecione Allow para confirmar.
  1. Inicie o Dev Proxy. Abra uma sessão de prompt de comando. Digite devproxy e pressione Enter.

  2. Certificado de confiança. O Dev Proxy usa um certificado SSL personalizado para descriptografar o tráfego HTTPS enviado da 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 Proxy de Desenvolvimento é configurado para:

  • Intercetar 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%

Intercetar solicitações

O Dev Proxy intercetará solicitações feitas para URLs conhecidas de qualquer aplicativo em sua máquina. Quando uma solicitação é detetada, o Proxy de Desenvolvimento passa a solicitação para a API (não execute nenhuma ação) ou retorna uma resposta.

  • Envie uma solicitação para a API de espaço reservado JSON a partir 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 curlo , 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 que o Proxy de Desenvolvimento 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 o passará.

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 api   ╰ Passed through
  • Repita o envio de solicitações para a API de espaço reservado JSON a partir 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 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

Pare o Dev Proxy com segurança

Quando você não precisar mais que o Dev Proxy esteja em execução, você deve sempre pará-lo com segurança.

  • Pressione Ctrl + C para parar 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á ter alguns problemas comuns.

Atualize os URLs a serem observados

Por padrão, o Proxy de Desenvolvimento é configurado para intercetar qualquer solicitação feita à API de Espaço Reservado JSON. Você pode configurar o Dev Proxy para intercetar 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 monitora 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 quer que o Dev Proxy intercete 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 do URL diz ao Dev Proxy para ignorar quaisquer solicitações que correspondam a esse URL. Você pode misturar e combinar pontos de exclamação e asteriscos em um URL.

  • Na linha de comando, digite 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 Proxy de Desenvolvimento não processa a solicitação e, portanto, nenhuma saída é exibida.

A ordem em que as URLs são listadas urlsToWatch na matriz é importante. O Dev Proxy processa essas URLs em ordem. Quando um URL corresponde, ele não é processado 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 falhar 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 para a 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 rate propriedade e atualize o valor de 50 para 100.

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 Proxy de Desenvolvimento para que as alterações sejam persistidas.

  • Na linha de comando, digite devproxy e pressione Enter para iniciar o Dev Proxy.
  • Envie uma solicitação para a API de espaço reservado JSON a partir da linha de comando e visualize a saída.

Como alternativa, você pode substituir as definições de configuração no tempo de execução usando a opção ao iniciar o --failure-rate Dev Proxy.

devproxy --failure-rate 100
  • Pressione Ctrl + C para parar o Dev Proxy com segurança.

Simule a limitação

Por padrão, o Dev Proxy 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 Dev Proxy usa plugins para habilitar diferentes comportamentos de API, por padrão, habilitamos dois plugins para você.

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 para o plug-in GenericRandomErrorPlugin. Observe o valor da configSection propriedade.
  • Mais abaixo no arquivo, localize o genericRandomErrorPlugin objeto. Observe o valor da errorsFile propriedade.

Gorjeta

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 a 429 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, digite devproxy e pressione Enter para iniciar o Dev Proxy.
  • Envie uma solicitação para a API de espaço reservado JSON a partir da linha de comando e visualize a saída.
 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 oops  ╰ 429 TooManyRequests
  • Pressione Ctrl + C para parar o Dev Proxy com segurança.

Próximo passo

Saiba como usar o Dev Proxy para simular erros aleatórios para seu próprio aplicativo.