Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se produce un error seleccionado aleatoriamente del archivo que contiene errores ficticios.
Ejemplo de configuración
{
"$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"
}
}
Propiedades de configuración
| Propiedad | Descripción | Predeterminado |
|---|---|---|
errorsFile |
Ruta de acceso al archivo que contiene respuestas de error. | errors.json |
rate |
Porcentaje de solicitudes que se producirá un error aleatorio. Valor entre 0 y 100. | 50 |
retryAfterInSeconds |
Número de segundos que se deben esperar antes de volver a intentar la solicitud. Incluido en el encabezado de respuesta Retry-After para la limitación dinámica. |
5 |
Opciones de línea de comandos
| Nombre | Descripción | Predeterminado |
|---|---|---|
-f, --failure-rate <failure rate> |
Porcentaje de solicitudes que se producirá un error aleatorio. Valor entre 0 y 100. | 50 |
Observaciones
Cuerpo de respuesta
Si establece la body propiedad de una respuesta de error en un objeto o matriz JSON, el proxy de desarrollo lo serializa en JSON. Si lo establece en una cadena, Dev Proxy envía la cadena as-is, sin comillas circundantes. Una cadena que comienza con @ se trata como una ruta de acceso a un archivo, en relación con el archivo de errores, con el cuerpo de la respuesta. Dado que dev Proxy establece el Content-Type encabezado application/jsoncomo predeterminado , establezca el encabezado para que coincida con el Content-Type contenido al devolver contenido que no es JSON, por ejemplo text/plain.
Valores por respuesta Retry-After
El proxy de desarrollo se @dynamic resuelve en el Retry-After encabezado de cualquier código de estado, como 429, 503o 529. Coincide con el nombre del encabezado independientemente del caso. Cuando resuelve @dynamic, también registra la solicitud con RetryAfterPlugin, que informa de las solicitudes que envía la aplicación antes de Retry-After que el tiempo esté activa.
De forma predeterminada, el Retry-After encabezado usa el valor global retryAfterInSeconds . Puede invalidar este valor por respuesta mediante la @dynamic=N sintaxis del archivo de respuestas de error, donde N es el número de segundos que se deben esperar antes de volver a intentarlo.
{
"$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."
}
}
}
]
}
]
}
En este ejemplo, el Retry-After encabezado usa 17 segundos para esta respuesta, independientemente de la configuración global retryAfterInSeconds . El valor se incrementa en cada solicitud limitada posterior, como con el token sin @dynamic formato.
Encabezado predeterminado Content-Type
Si una respuesta de error tiene body y no define un Content-Type encabezado, Dev Proxy devuelve la respuesta con el Content-Type: application/json encabezado . Para devolver un tipo de contenido diferente, agregue el Content-Type encabezado a la respuesta en el archivo de errores. El proxy de desarrollo usa el valor que especifique.