Prise en main du proxy de développement
Le proxy de développement est un outil en ligne de commande qui vous permet de simuler des comportements et des erreurs d’API cloud pour vous aider à créer des applications résilientes.
Dans ce tutoriel, vous allez apprendre à installer, exécuter et configurer le proxy de développement.
Si vous rencontrez des difficultés, n’hésitez pas à nous contacter en soulevant un nouveau problème et nous sommes heureux de vous aider.
Installer le proxy de développement
Le moyen le plus simple d’installer le proxy de développement consiste à utiliser winget. Vous pouvez également installer manuellement le proxy de développement.
Pour installer Dev Proxy à l’aide de winget, exécutez la commande suivante :
winget install Microsoft.DevProxy --silent
Important
Le programme d’installation du proxy de développement ajoute une nouvelle entrée à PATH. Pour utiliser le proxy de développement après l’installation, vous devez redémarrer l’invite de commandes pour vous assurer que les variables d’environnement PATH ont été actualisées.
Remarque
Pour essayer les dernières fonctionnalités en préversion, installez la version bêta du proxy de développement.
Pour installer Dev Proxy à l’aide de winget, exécutez la commande suivante :
winget install Microsoft.DevProxy.Beta --silent
Pour exécuter la version bêta du proxy de développement, utilisez devproxy-beta
Le moyen le plus simple d’installer le proxy de développement consiste à utiliser Homebrew. Vous pouvez également installer manuellement le proxy de développement.
Pour installer le proxy de développement à l’aide de Homebrew, exécutez les commandes suivantes :
brew tap microsoft/dev-proxy
brew install dev-proxy
Remarque
Pour essayer les dernières fonctionnalités en préversion, installez la version bêta du proxy de développement.
Pour installer le proxy de développement à l’aide de Homebrew, exécutez les commandes suivantes :
brew tap microsoft/dev-proxy
brew install dev-proxy-beta
Pour exécuter la version bêta du proxy de développement, utilisez devproxy-beta
Le moyen le plus simple d’installer le proxy de développement consiste à utiliser le script d’installation. Vous pouvez également installer manuellement le proxy de développement.
Pour installer le proxy de développement à l’aide du script d’installation, exécutez les commandes suivantes :
bash -c "$(curl -sL https://aka.ms/devproxy/setup.sh)"
Si vous utilisez PowerShell, exécutez la commande suivante :
(Invoke-WebRequest https://aka.ms/devproxy/setup.ps1).Content | Invoke-Expression
Remarque
Pour essayer les dernières fonctionnalités en préversion, installez la version bêta du proxy de développement.
Pour installer le proxy de développement à l’aide du script d’installation, exécutez les commandes suivantes :
bash -c "$(curl -sL https://aka.ms/devproxy/setup-beta.sh)"
Si vous utilisez PowerShell, exécutez la commande suivante :
(Invoke-WebRequest https://aka.ms/devproxy/setup-beta.ps1).Content | Invoke-Expression
Pour exécuter la version bêta du proxy de développement, utilisez devproxy-beta
Démarrer le proxy de développement pour la première fois
La première fois que vous démarrez le proxy de développement sur votre ordinateur, vous devez suivre quelques étapes pour vous assurer que le proxy de développement peut intercepter les requêtes de votre ordinateur et répondre correctement. Vous n’aurez pas à répéter ces étapes après la première exécution.
- Démarrez le proxy de développement. Ouvrez une session d’invite de commandes. Entrez
devproxy
, puis appuyez sur Entrée. - Certificat d’approbation. Le proxy de développement installe un certificat nommé
Dev Proxy CA
. Un avertissement s’affiche. Sélectionnez cette optionYes
pour confirmer que vous souhaitez installer le certificat. Le proxy de développement utilise ce certificat pour déchiffrer le trafic HTTPS envoyé à partir de votre ordinateur. - Autoriser l’accès au pare-feu. Le Pare-feu Windows bloque le proxy. Un avertissement s’affiche. Sélectionnez
Allow access
le bouton pour autoriser le trafic via le pare-feu.
- Démarrez le proxy de développement. Ouvrez une session d’invite de commandes. Entrez
devproxy
, puis appuyez sur Entrée. - Certificat d’approbation. Le proxy de développement installe un certificat nommé
Dev Proxy CA
, qu’il utilise pour déchiffrer le trafic HTTPS envoyé à partir de votre machine. Un avertissement s’affiche. Appuyez sur y pour confirmer que vous souhaitez approuver le certificat. - Acceptez les connexions entrantes. Un avertissement s’affiche. Sélectionnez cette option
Allow
pour confirmer.
Démarrez le proxy de développement. Ouvrez une session d’invite de commandes. Entrez
devproxy
, puis appuyez sur Entrée.Certificat d’approbation. Le proxy de développement utilise un certificat SSL personnalisé pour déchiffrer le trafic HTTPS envoyé à partir de votre ordinateur.
Important
Les instructions suivantes concernent Ubuntu. Pour les autres distributions Linux, les étapes peuvent différer.
Pour installer et approuver le certificat, dans une nouvelle invite de commandes, exécutez les commandes suivantes :
# 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
L’invite de commandes affiche la sortie suivante :
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
Par défaut, le proxy de développement est configuré pour :
- Intercepter les demandes adressées à n’importe quel point de terminaison d’API d’espace réservé JSON
- Simuler des réponses d’erreur d’API et une limitation d’API avec un taux d’échec de 50 %
Intercepter les requêtes
Le proxy de développement intercepte les demandes adressées aux URL connues de n’importe quelle application sur votre ordinateur. Lorsqu’une demande est détectée, le proxy de développement transmet la requête à l’API (sans action) ou retourne une réponse.
- Envoyez une demande à l’API d’espace réservé JSON à partir de la ligne de commande et revenez au processus proxy pour afficher la sortie.
Dans PowerShell, utilisez l’applet Invoke-WebRequest
de commande pour envoyer une requête GET à l’API d’espace réservé JSON.
Invoke-WebRequest -Uri https://jsonplaceholder.typicode.com/posts
Si vous utilisez curl
, envoyez une requête GET à l’API d’espace réservé JSON à l’aide de la commande suivante.
curl -ix http://localhost:8000 https://jsonplaceholder.typicode.com/posts
Vous pouvez également utiliser un client d’API comme Postman pour envoyer une requête GET à https://jsonplaceholder.typicode.com/posts
.
Une entrée s’affiche avec des informations de base sur la requête entrante et l’action effectuée par le proxy de développement. Le proxy de développement simule une réponse d’erreur avec une probabilité de 50 %. Si votre demande ne retourne pas d’erreur, le proxy de développement le transmet.
req ╭ GET https://jsonplaceholder.typicode.com/posts
api ╰ Passed through
- Répétez l’envoi de requêtes à l’API d’espace réservé JSON à partir de la ligne de commande jusqu’à ce qu’une réponse d’erreur soit retournée.
req ╭ GET https://jsonplaceholder.typicode.com/posts
api ╰ Passed through
req ╭ GET https://jsonplaceholder.typicode.com/posts
oops ╰ 403 Forbidden
Lorsque le proxy de développement retourne une réponse d’erreur, une chaos
étiquette s’affiche dans l’entrée.
- Essayez d’envoyer des demandes à d’autres points de terminaison disponibles sur l’API d’espace réservé 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
Arrêter le proxy de développement en toute sécurité
Lorsque vous n’avez plus besoin que le proxy de développement soit en cours d’exécution, vous devez toujours l’arrêter en toute sécurité.
- Appuyez sur Ctrl + C pour arrêter le proxy de développement en toute sécurité.
Si vous arrêtez la session d’invite de commandes, le proxy de développement n’annule pas l’inscription correctement en tant que proxy système et vous risquez de rencontrer des problèmes courants.
Mettre à jour les URL pour regarder
Par défaut, le proxy de développement est configuré pour intercepter toutes les requêtes adressées à l’API d’espace réservé JSON. Vous pouvez configurer le proxy de développement pour intercepter les requêtes sur n’importe quelle API HTTP.
- Ouvrez le fichier de configuration du proxy de développement en exécutant la ligne de commande :
devproxy config
. - Recherchez le
urlsToWatch
tableau.
"urlsToWatch": [
"https://jsonplaceholder.typicode.com/*"
],
Le urlsToWatch
tableau représente les URL connues. Le proxy de développement surveille les demandes de l’entrée actuelle vers n’importe quel point de terminaison. L’entrée utilise un astérisque après l’URL comme caractère générique. L’ajout d’entrées supplémentaires dans ce tableau développe les URL que le proxy de développement surveille.
Considérons que vous ne souhaitez pas que le proxy de développement intercepte les demandes adressées à un point de terminaison spécifique.
- Ajoutez une nouvelle entrée au
urlsToWatch
tableau.
"urlsToWatch": [
"!https://jsonplaceholder.typicode.com/posts/2",
"https://jsonplaceholder.typicode.com/*"
],
Le point d’exclamation au début de l’URL indique au proxy de développement d’ignorer les requêtes qui correspondent à cette URL. Vous pouvez combiner et mettre en correspondance des marques d’exclamation et des astérisques dans une URL.
- Sur la ligne de commande, entrez et appuyez
devproxy
sur Entrée pour démarrer le proxy de développement. - Envoyez une demande à
https://jsonplaceholder.typicode.com/posts/2
partir de la ligne de commande et affichez la sortie.
Lorsqu’une URL ignorée est mise en correspondance avec une requête, le proxy de développement ne traite pas la requête, et aucune sortie n’est donc affichée.
L’ordre dans lequel les URL sont répertoriées dans le urlsToWatch
tableau est important. Le proxy de développement traite ces URL dans l’ordre. Lorsqu’une URL correspond, elle n’est plus traitée. Par conséquent, le placement de l’URL garantit d’abord que la requête est ignorée avant le traitement de l’URL suivante.
Taux d’échec des modifications
Par défaut, le proxy de développement est configuré pour échouer les requêtes avec une chance de 50 % pour les URL qui sont surveillées. Vous pouvez augmenter ou diminuer la probabilité qu’une demande retourne une réponse d’erreur.
Nous allons mettre à jour le taux d’échec afin que chaque requête adressée à l’API d’espace réservé JSON retourne une réponse d’erreur.
- Ouvrez le fichier de configuration du proxy de développement en exécutant la ligne de commande :
devproxy config
. - Recherchez la propriété
rate
et remplacez la valeur50
par100
.
Le devproxyrc.json
fichier contient les paramètres de configuration utilisés lors du démarrage du proxy de développement. Lors de la modification des paramètres de configuration, vous devez toujours arrêter et démarrer le proxy de développement pour que les modifications soient conservées.
- Sur la ligne de commande, entrez et appuyez
devproxy
sur Entrée pour démarrer le proxy de développement. - Envoyez une requête à l’API d’espace réservé JSON à partir de la ligne de commande et affichez la sortie.
Vous pouvez également remplacer les paramètres de configuration au moment de l’exécution à l’aide de l’option --failure-rate
lors du démarrage du proxy de développement.
devproxy --failure-rate 100
- Appuyez sur Ctrl + C pour arrêter le proxy de développement en toute sécurité.
Simuler la limitation
Par défaut, le proxy de développement retourne une plage de réponses d’erreur génériques 400 et 500. Vous pouvez personnaliser ces réponses d’erreur à vos propres besoins.
Le proxy de développement utilise des plug-ins pour activer différents comportements d’API, par défaut, nous allons activer deux plug-ins pour vous.
- Le plug-in GenericRandomErrorPlugin permet au proxy de développement de répondre avec une réponse d’erreur.
- Le plug-in RetryAfterPlugin permet au proxy de développement d’injecter une valeur dynamique dans l’en-tête Retry-After dans la réponse d’erreur.
Modifions la configuration afin que le proxy de développement retourne toujours une 429 Too Many requests
réponse d’erreur pour simuler la limitation.
Tout d’abord, nous allons localiser l’emplacement du fichier qui contient les définitions d’erreur.
- Ouvrez le fichier de configuration du proxy de développement en exécutant la ligne de commande :
devproxy config
. - Dans le
plugins
tableau, recherchez l’entrée du plug-in GenericRandomErrorPlugin . Notez la valeur de laconfigSection
propriété. - Plus loin dans le fichier, recherchez l’objet
genericRandomErrorPlugin
. Notez la valeur de laerrorsFile
propriété.
Conseil
L’emplacement du fichier d’erreurs s’affiche également dans la sortie lorsque vous démarrez le proxy de développement.
- Dans le dossier d’installation du proxy de développement, ouvrez-le
devproxy-errors.json
dans un éditeur de texte. - Supprimez toutes les entrées de réponse dans le
responses
tableau, à l’exception de la429
réponse.
{
"$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"
}
}
]
}
]
}
- Sur la ligne de commande, entrez et appuyez
devproxy
sur Entrée pour démarrer le proxy de développement. - Envoyez une requête à l’API d’espace réservé JSON à partir de la ligne de commande et affichez la sortie.
req ╭ GET https://jsonplaceholder.typicode.com/posts
oops ╰ 429 TooManyRequests
- Appuyez sur Ctrl + C pour arrêter le proxy de développement en toute sécurité.
Étape suivante
Découvrez comment utiliser le proxy de développement pour simuler des erreurs aléatoires pour votre propre application.