Azure API Management: La API de Azure devuelve una respuesta en blanco

Síntomas

La API Blank API consta de dos operaciones GetHeaders y GetMyIpGetMyIp devuelve el valor del encabezado X-FORWARDED-FOR y GetHeaders devuelve todos los valores de encabezado de solicitud. GetMyIp devuelve la salida esperada, pero de repente GetHeaders comenzó a devolver una respuesta en blanco (sin cuerpo de respuesta).

Captura de pantalla de una respuesta en blanco.

La salida esperada de GetHeaders API debe ser similar a la siguiente:

{
  "headers": {
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
    "Accept-Encoding": "gzip, deflate", 
    "Accept-Language": "en-US,en;q=0.5", 
    "Connection": "close", 
    "Cookie": "_gauges_unique_day=1; _gauges_unique_month=1; _gauges_unique_year=1; _gauges_unique=1", 
    "Host": "eu.httpbin.org", 
    "Upgrade-Insecure-Requests": "1", 
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0"
  }
}

Pasos de solución de problemas

Para depurar este tipo de problemas, el mejor enfoque es recopilar el seguimiento del inspector de APIM para inspeccionar el procesamiento de solicitudes dentro de la canalización de APIM.

  • Si examina el seguimiento, observaría que falta la directiva de solicitud de reenvío.
  • La directiva de solicitud de reenvío reenvía la solicitud entrante al servicio back-end especificado en el contexto de la solicitud.
  • Al quitar esta directiva, la solicitud no se reenvía al servicio back-end y las directivas de la sección saliente se evalúan inmediatamente después de la finalización correcta de las directivas en la sección de entrada.
  • Por lo tanto, si comprueba la <sección back-end> de la operación GetHeaders en Blank-API , observaría que se ha quitado la directiva de solicitud de reenvío.
  • Agregue la directiva de solicitud de reenvío en la sección back-end o agregue <base o> elemento para que herede la directiva de solicitud de reenvío del nivel primario (es decir, desde el nivel de API), que debe resolver el problema.

Obtenga información sobre la directiva de solicitud de reenvío para obtener más información al respecto.