GraphRandomErrorPlugin

Se produce un error en las solicitudes realizadas a Microsoft Graph con errores aleatorios.

Captura de pantalla de un símbolo del sistema con proxy de desarrollo simulando un error aleatorio para una solicitud de Microsoft Graph.

Ejemplo de configuración

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/rc.schema.json",
  "plugins": [
    {
      "name": "GraphRandomErrorPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "graphRandomErrorPlugin"
    }
  ],
  "graphRandomErrorPlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v4.0.0/graphrandomerrorplugin.schema.json",
    "allowedErrors": [ 429, 500, 502, 503, 504, 507 ]
  }
}

Propiedades de configuración

Propiedad Descripción Predeterminado
allowedErrors Lista de códigos de estado HTTP que puede generar el proxy de desarrollo. 429 500 502 503 504 507
rate Porcentaje de solicitudes que se producirá un error aleatorio. Valor entre 0 y 100. 50
retryAfterInSeconds Valor del encabezado Retry-After en segundos. 5

Opciones de línea de comandos

Nombre Descripción Predeterminado
-a, --allowed-errors Lista de códigos de estado HTTP que puede generar el proxy de desarrollo. 429 500 502 503 504 507
-f, --failure-rate <failure rate> Porcentaje de solicitudes que se producirá un error aleatorio. Valor entre 0 y 100. 50

Códigos de estado de error HTTP usados por Microsoft Graph

Microsoft Graph usa los siguientes códigos de estado HTTP.

Propina

Descripciones de códigos de estado de respuesta HTTP

Código Nombre Descripción
429 Demasiadas solicitudes Indica que el usuario ha enviado demasiadas solicitudes en un período de tiempo determinado ("limitación de velocidad"). Un encabezado Retry-After podría incluirse en esta respuesta que indica cuánto tiempo debe esperar antes de realizar una nueva solicitud.
500 Error interno del servidor Indica que el servidor encontró una condición inesperada que impedía que cumpla la solicitud. Esta respuesta de error es una respuesta genérica "catch-all". Normalmente, esto indica que el servidor no puede encontrar un mejor código de error 5xx para responder.
502 Puerta de enlace incorrecta Indica que el servidor, mientras actúa como puerta de enlace o proxy, recibió una respuesta no válida del servidor ascendente.
503 Servicio no disponible Indica que el servidor no está listo para controlar la solicitud. Las causas comunes son un servidor que está inactivo para el mantenimiento o que está sobrecargado. Esta respuesta debe usarse para las condiciones temporales y el Retry-After encabezado HTTP debe contener, si es posible, el tiempo estimado para la recuperación del servicio.
504 Tiempo de espera de puerta de enlace Indica que el servidor, mientras actúa como puerta de enlace o proxy, no recibe una respuesta a tiempo del servidor ascendente que necesitaba para completar la solicitud.
507 Almacenamiento insuficiente Puede darse en el contexto del protocolo Web Distributed Authoring and Versioning (WebDAV) (consulte RFC 4918). Indica que no se pudo realizar un método porque el servidor no puede almacenar la representación necesaria para completar correctamente la solicitud.

Observaciones

El proxy de desarrollo limita los errores que simula para cada método HTTP a los errores que Microsoft Graph devuelve para ese método. GET y PATCH las solicitudes usan 429, 500, 502, 503y 504. POSTLas solicitudes , PUTy DELETE también usan 507. Cuando se establece , el proxy de desarrollo allowedErrorssolo usa los errores permitidos que se aplican a cada método. Por ejemplo, si establece allowedErrors[ 507 ]en , el proxy de desarrollo produce un error POSTen , PUTy DELETE las solicitudes, pero no GET en las solicitudes o PATCH .

Si ninguno de los errores permitidos se aplica al método de una solicitud, el proxy de desarrollo pasa la solicitud a Microsoft Graph. El proxy de desarrollo también pasa a través de solicitudes que usan otros métodos HTTP, como HEAD o OPTIONS. En el caso de las solicitudes por lotes, si alguna solicitud del lote no tiene errores permitidos, el proxy de desarrollo pasa todo el lote, ya que una respuesta por lotes debe incluir una respuesta para cada solicitud del lote.

Paso siguiente