Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Échec des requêtes avec une erreur sélectionnée aléatoire à partir d’un fichier contenant des erreurs factices.
Exemple de configuration
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
"plugins": [
{
"name": "GenericRandomErrorPlugin",
"enabled": true,
"pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
"configSection": "genericRandomErrorPlugin"
}
],
"urlsToWatch": [
"https://api.openai.com/*"
],
"genericRandomErrorPlugin": {
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/genericrandomerrorplugin.schema.json",
"errorsFile": "errors.json"
}
}
Propriétés de configuration
| Propriété | Descriptif | Faire défaut |
|---|---|---|
errorsFile |
Chemin d’accès au fichier qui contient des réponses d’erreur. | errors.json |
rate |
Pourcentage de demandes à échouer avec une erreur aléatoire. Valeur comprise entre 0 et 100. | 50 |
retryAfterInSeconds |
Nombre de secondes à attendre avant de réessayer la requête. Inclus dans l’en-tête de réponse Retry-After pour la limitation dynamique. |
5 |
Options de ligne de commande
| Nom | Descriptif | Faire défaut |
|---|---|---|
-f, --failure-rate <failure rate> |
Pourcentage de demandes à échouer avec une erreur aléatoire. Valeur comprise entre 0 et 100. | 50 |
Remarques
Corps de réponse
Si vous définissez la body propriété d’une réponse d’erreur sur un objet ou un tableau JSON, le proxy de développement le sérialise au format JSON. Si vous la définissez sur une chaîne, le proxy de développement envoie la chaîne as-is, sans guillemets environnants. Une chaîne qui commence par @ est traitée comme un chemin d’accès à un fichier, par rapport au fichier d’erreurs, avec le corps de la réponse. Étant donné que le proxy de développement définit par défaut l’en-tête Content-Typeapplication/jsonsur , définissez l’en-tête Content-Type pour qu’il corresponde à votre contenu lorsque vous retournez du contenu non JSON, par exemple text/plain.
Valeurs par réponse Retry-After
Le proxy de développement se @dynamic résout dans l’en-tête Retry-After pour n’importe quel code d’état, tel que 429, 503ou 529. Il correspond au nom de l’en-tête, quel que soit le cas. Lorsqu’il est résolu, il inscrit également la requête auprès de RetryAfterPlugin, qui signale les demandes envoyées @dynamicpar votre application avant le Retry-After délai d’attente.
Par défaut, l’en-tête Retry-After utilise la valeur globale retryAfterInSeconds . Vous pouvez remplacer cette valeur par réponse à l’aide de la syntaxe dans le @dynamic=N fichier de réponses d’erreur, où N est le nombre de secondes à attendre avant de réessayer.
{
"$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/genericrandomerrorplugin.errorsfile.schema.json",
"errors": [
{
"request": {
"url": "https://api.openai.com/*"
},
"responses": [
{
"statusCode": 429,
"headers": [
{
"name": "Retry-After",
"value": "@dynamic=17"
}
],
"body": {
"error": {
"message": "Rate limit exceeded. Wait 17 seconds."
}
}
}
]
}
]
}
Dans cet exemple, l’en-tête Retry-After utilise 17 des secondes pour cette réponse, quel que soit le paramètre global retryAfterInSeconds . La valeur incrémente chaque requête limitée suivante, comme avec le jeton brut @dynamic .
En-tête par défaut Content-Type
Si une réponse d’erreur a un body en-tête et ne définit pas d’en-tête Content-Type , le proxy de développement retourne la réponse avec l’en-tête Content-Type: application/json . Pour retourner un autre type de contenu, ajoutez l’en-tête Content-Type à la réponse dans le fichier d’erreurs. Le proxy de développement utilise la valeur que vous spécifiez.