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.

Questa esercitazione descrive come installare, eseguire e configurare Dev Proxy.

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

Installare il proxy di sviluppo

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

Installare Dev Proxy usando winget, eseguire il comando seguente:

winget install Microsoft.DevProxy --silent

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 del proxy di sviluppo 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 usando 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 usando Homebrew, eseguire i comandi seguenti:

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

Per eseguire la versione beta del proxy di sviluppo devproxy-beta

Avviare il proxy di sviluppo per la prima volta

La prima volta che si avvia Dev Proxy nel computer sono necessari alcuni passaggi per assicurarsi che Dev Proxy possa intercettare le richieste dal computer e rispondere correttamente. Non è 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 Yes per confermare che si vuole installare il certificato. Dev Proxy usa questo certificato per decrittografare il traffico HTTPS inviato dal computer.
  3. Consenti l'accesso al firewall. Windows Firewall blocca il proxy. Viene visualizzato un avviso. Selezionare Allow access il pulsante per consentire il traffico tramite 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 Allow per confermare.

Il prompt dei comandi visualizza l'output seguente:

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

Per impostazione predefinita, Dev Proxy è configurato per:

  • Intercettare le richieste effettuate a qualsiasi endpoint DELL'API segnaposto JSON
  • Simulare le risposte agli errori dell'API e la limitazione delle API con un tasso 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 -ix 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.

 request     GET https://jsonplaceholder.typicode.com/posts
     api   ╭ Passed through
           ╰ GET https://jsonplaceholder.typicode.com/posts
  • Ripetere l'invio di richieste all'API segnaposto JSON dalla riga di comando, fino a quando non viene restituita una risposta di errore.
 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 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, è sempre consigliabile arrestarlo 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 esegue la registrazione correttamente come proxy di sistema e potrebbe verificarsi alcuni problemi comuni.

Aggiornare gli URL a watch

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.

  • In un prompt dei comandi eseguire brew list dev-proxy per individuare la cartella di installazione.
  • Aprire la cartella di installazione di Dev Proxy in Finder.
  • Nella cartella di installazione di Dev Proxy aprire devproxyrc.json in un editor di testo.
  • 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 cercati da Dev Proxy.

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 le richieste che corrispondono 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.

Viene visualizzata una voce che conferma che la richiesta è stata ignorata e passata all'API.

request     GET https://jsonplaceholder.typicode.com/posts/2
     api   ╭ Passed through
           ╰ GET https://jsonplaceholder.typicode.com/posts/2

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. L'inserimento dell'URL garantisce quindi 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.

  • Nella cartella di installazione di Dev Proxy aprire devproxyrc.json in un editor di testo.
  • 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 di errore generica 400 e 500. È possibile personalizzare queste risposte agli errori in base alle proprie esigenze.

Per impostazione predefinita, 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.

  • Nella cartella di installazione di Dev Proxy aprire devproxyrc.json in un editor di testo.
  • 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.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"
      }
    }
  ]
}
  • 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.
 request     GET https://jsonplaceholder.typicode.com/posts
   chaos   ╭ 429 TooManyRequests
           ╰ GET https://jsonplaceholder.typicode.com/posts
  • 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.