Condividi tramite


Introduzione a Dev Proxy

Dev Proxy è uno strumento da riga di comando che consente di simulare comportamenti ed errori delle API cloud per creare app resilienti.

In questa esercitazione si apprenderà come installare, eseguire e configurare Il proxy di sviluppo.

Se si verificano problemi, non esitare a contattarci generando un nuovo problema e siamo lieti di aiutarvi.

Installare Dev Proxy

Il modo più semplice per installare Dev Proxy consiste nell'usare winget. In alternativa, è possibile installare manualmente Dev Proxy.

Per installare Dev Proxy usando winget, eseguire il comando seguente:

winget install Microsoft.DevProxy --silent

Importante

Il programma di installazione di Dev Proxy aggiunge una nuova voce a PATH. Per usare Dev Proxy dopo l'installazione, è necessario riavviare il prompt dei comandi per assicurarsi che le variabili di ambiente PATH siano state aggiornate.

Nota

Per provare le funzionalità di anteprima più recenti, installare la versione beta di Dev Proxy.

Per installare Dev Proxy usando winget, eseguire il comando seguente:

winget install Microsoft.DevProxy.Beta --silent

Per eseguire la versione beta di Dev Proxy usare devproxy-beta

Il modo più semplice per installare Dev Proxy consiste nell'usare Homebrew. In alternativa, è possibile installare manualmente Dev Proxy.

Per installare Dev Proxy con Homebrew, eseguire i comandi seguenti:

brew tap microsoft/dev-proxy
brew install dev-proxy

Nota

Per provare le funzionalità di anteprima più recenti, installare la versione beta di Dev Proxy.

Per installare Dev Proxy con Homebrew, eseguire i comandi seguenti:

brew tap microsoft/dev-proxy
brew install dev-proxy-beta

Per eseguire la versione beta di Dev Proxy usare devproxy-beta

Il modo più semplice per installare Dev Proxy consiste nell'usare lo script di installazione. In alternativa, è possibile installare manualmente Dev Proxy.

Per installare Dev Proxy usando lo script di installazione, eseguire i comandi seguenti:

bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"

Se si usa PowerShell, eseguire il comando seguente:

(Invoke-WebRequest https://aka.ms/devproxy/setup.ps1).Content | Invoke-Expression

Nota

Per provare le funzionalità di anteprima più recenti, installare la versione beta di Dev Proxy.

Per installare Dev Proxy usando lo script di installazione, eseguire i comandi seguenti:

bash -c "$(curl -sL https://aka.ms/devproxy/setup-beta.sh)"

Se si usa PowerShell, eseguire il comando seguente:

(Invoke-WebRequest https://aka.ms/devproxy/setup-beta.ps1).Content | Invoke-Expression

Per eseguire la versione beta di Dev Proxy usare devproxy-beta

Avviare il proxy di sviluppo per la prima volta

La prima volta che si avvia Dev Proxy nel computer, è necessario eseguire alcuni passaggi per assicurarsi che Dev Proxy possa intercettare le richieste dal computer e rispondere correttamente. Non sarà necessario ripetere questi passaggi dopo la prima esecuzione.

  1. Avviare Il proxy di sviluppo. Aprire una sessione del prompt dei comandi. Immettere devproxy e premere Invio.
  2. Certificato di attendibilità. Dev Proxy installa un certificato denominato Dev Proxy CA. Viene visualizzato un avviso. Selezionare questa opzione Yes per confermare l'installazione del certificato. Dev Proxy usa questo certificato per decrittografare il traffico HTTPS inviato dal computer.
  3. Consentire l'accesso al firewall. Windows Firewall blocca il proxy. Viene visualizzato un avviso. Selezionare Allow access il pulsante per consentire il traffico attraverso il firewall.
  1. Avviare Il proxy di sviluppo. Aprire una sessione del prompt dei comandi. Immettere devproxy e premere Invio.
  2. Certificato di attendibilità. Dev Proxy installa un certificato denominato Dev Proxy CA, che usa per decrittografare il traffico HTTPS inviato dal computer. Viene visualizzato un avviso. Premere y per confermare che si vuole considerare attendibile il certificato.
  3. Accettare connessioni in ingresso. Viene visualizzato un avviso. Selezionare questa opzione Allow per confermare.
  1. Avviare Il proxy di sviluppo. Aprire una sessione del prompt dei comandi. Immettere devproxy e premere Invio.

  2. Certificato di attendibilità. Dev Proxy usa un certificato SSL personalizzato per decrittografare il traffico HTTPS inviato dal computer.

    Importante

    Le istruzioni seguenti sono per Ubuntu. Per altre distribuzioni linux, i passaggi potrebbero essere diversi.

    Per installare e considerare attendibile il certificato, eseguire i comandi seguenti in un nuovo prompt dei comandi:

    # 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
    

Il prompt dei comandi visualizza l'output seguente:

 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

Per impostazione predefinita, Dev Proxy è configurato per:

  • Intercettare le richieste effettuate a qualsiasi endpoint dell'API segnaposto JSON
  • Simulare le risposte di errore dell'API e la limitazione delle API con una frequenza di errore del 50%

Intercettare le richieste

Dev Proxy intercetta le richieste effettuate agli URL noti da qualsiasi applicazione nel computer. Quando viene rilevata una richiesta, Dev Proxy passa la richiesta all'API (non eseguire alcuna azione) o restituisce una risposta.

  • Inviare una richiesta all'API segnaposto JSON dalla riga di comando e tornare al processo proxy per visualizzare l'output.

In PowerShell usare il Invoke-WebRequest cmdlet per inviare una richiesta GET all'API segnaposto JSON.

Invoke-WebRequest -Uri https://jsonplaceholder.typicode.com/posts

Se si usa curl, inviare una richiesta GET all'API segnaposto JSON usando il comando seguente.

curl -ikx http://localhost:8000 https://jsonplaceholder.typicode.com/posts

È anche possibile usare un client API come Postman per inviare una richiesta GET a https://jsonplaceholder.typicode.com/posts.

Viene visualizzata una voce con alcune informazioni di base sulla richiesta in ingresso e sull'azione eseguita da Dev Proxy. Dev Proxy simula una risposta di errore con una probabilità del 50%. Se la richiesta non restituisce un errore, Dev Proxy lo passa attraverso.

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 api   ╰ Passed through
  • Ripetere l'invio di richieste all'API segnaposto JSON dalla riga di comando fino a quando non viene restituita una risposta di errore.
 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 api   ╰ Passed through

 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 oops  ╰ 403 Forbidden

Quando Dev Proxy restituisce una risposta di errore, viene visualizzata un'etichetta chaos nella voce.

  • Provare a inviare richieste ad altri endpoint disponibili nell'API segnaposto 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

Arrestare il proxy di sviluppo in modo sicuro

Quando non è più necessario che Dev Proxy sia in esecuzione, è consigliabile arrestarlo sempre in modo sicuro.

  • Premere CTRL + C per arrestare in modo sicuro Il proxy di sviluppo.

Se si arresta la sessione del prompt dei comandi, Dev Proxy non annulla correttamente la registrazione come proxy di sistema e potrebbero verificarsi alcuni problemi comuni.

Aggiornare gli URL da controllare

Per impostazione predefinita, Dev Proxy è configurato per intercettare qualsiasi richiesta effettuata all'API segnaposto JSON. È possibile configurare Dev Proxy per intercettare le richieste a qualsiasi API HTTP.

  • Aprire il file di configurazione del proxy di sviluppo eseguendo nella riga di comando: devproxy config.
  • Individuare la urlsToWatch matrice.
"urlsToWatch": [
  "https://jsonplaceholder.typicode.com/*"
],

La urlsToWatch matrice rappresenta gli URL noti. Dev Proxy controlla le richieste dalla voce corrente a qualsiasi endpoint. La voce usa un asterisco dopo l'URL come carattere jolly. L'aggiunta di altre voci in questa matrice espande gli URL per i quali Dev Proxy cerca.

Si consideri che non si vuole che Dev Proxy intercetta le richieste effettuate a un endpoint specifico.

  • Aggiungere una nuova voce alla urlsToWatch matrice.
"urlsToWatch": [
  "!https://jsonplaceholder.typicode.com/posts/2",
  "https://jsonplaceholder.typicode.com/*"
],

Il punto esclamativo all'inizio dell'URL indica a Dev Proxy di ignorare tutte le richieste corrispondenti a tale URL. È possibile combinare e associare punti esclamativi e asterischi in un URL.

  • Nella riga di comando immettere devproxy e premere INVIO per avviare Dev Proxy.
  • Inviare una richiesta a https://jsonplaceholder.typicode.com/posts/2 dalla riga di comando e visualizzare l'output.

Quando un URL ignorato corrisponde a una richiesta, Dev Proxy non elabora la richiesta e quindi non viene visualizzato alcun output.

L'ordine in cui gli URL sono elencati nella urlsToWatch matrice è importante. Dev Proxy elabora questi URL in ordine. Quando un URL corrisponde, non viene elaborato di nuovo. Pertanto, l'inserimento dell'URL garantisce che la richiesta venga ignorata prima dell'elaborazione dell'URL successivo.

Percentuale di errori di modifica

Per impostazione predefinita, Dev Proxy è configurato in modo da non riuscire le richieste con una probabilità del 50% agli URL che vengono guardati. È possibile aumentare o ridurre la probabilità che una richiesta restituisca una risposta di errore.

Si aggiornerà ora la frequenza degli errori in modo che ogni richiesta all'API segnaposto JSON restituisca una risposta di errore.

  • Aprire il file di configurazione del proxy di sviluppo eseguendo nella riga di comando: devproxy config.
  • Individuare la proprietà rate e aggiornare il valore da 50 a 100.

Il devproxyrc.json file contiene le impostazioni di configurazione usate all'avvio di Dev Proxy. Quando si modificano le impostazioni di configurazione, è sempre necessario arrestare e avviare Dev Proxy per rendere persistenti le modifiche.

  • Nella riga di comando immettere devproxy e premere INVIO per avviare Dev Proxy.
  • Inviare una richiesta all'API segnaposto JSON dalla riga di comando e visualizzare l'output.

In alternativa, è possibile eseguire l'override delle impostazioni di configurazione in fase di esecuzione usando l'opzione all'avvio --failure-rate di Dev Proxy.

devproxy --failure-rate 100
  • Premere CTRL + C per arrestare in modo sicuro Il proxy di sviluppo.

Simulare la limitazione

Per impostazione predefinita, Dev Proxy restituisce un intervallo di risposte generice di errore 400 e 500. È possibile personalizzare queste risposte agli errori in base alle proprie esigenze.

Dev Proxy usa plug-in per abilitare comportamenti api diversi, per impostazione predefinita, vengono abilitati due plug-in.

Modificare la configurazione in modo che Dev Proxy restituisca sempre una 429 Too Many requests risposta di errore per simulare la limitazione.

Individuare prima di tutto il percorso del file che contiene le definizioni di errore.

  • Aprire il file di configurazione del proxy di sviluppo eseguendo nella riga di comando: devproxy config.
  • plugins Nella matrice individuare la voce per il plug-in GenericRandomErrorPlugin. Si noti il valore della configSection proprietà .
  • Più in basso nel file individuare l'oggetto genericRandomErrorPlugin . Si noti il valore della errorsFile proprietà .

Suggerimento

Il percorso del file degli errori viene visualizzato anche nell'output quando si avvia Dev Proxy.

  • Nella cartella di installazione di Dev Proxy aprire devproxy-errors.json in un editor di testo.
  • Rimuovere tutte le voci di risposta nella responses matrice, ad eccezione della 429 risposta.
{
  "$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"
          }
        }
      ]
    }
  ]
}
  • Nella riga di comando immettere devproxy e premere INVIO per avviare Dev Proxy.
  • Inviare una richiesta all'API segnaposto JSON dalla riga di comando e visualizzare l'output.
 req   ╭ GET https://jsonplaceholder.typicode.com/posts
 oops  ╰ 429 TooManyRequests
  • Premere CTRL + C per arrestare in modo sicuro Il proxy di sviluppo.

Passaggio successivo

Informazioni su come usare Dev Proxy per simulare errori casuali per la propria applicazione.