azure: ¿Cómo hago cumplir una redirección de URL cuando no se pasa el sufijo de URL de API para mi API Management?

CorePress2024-01-24  8

He examinado la URL de reescritura para APIM azul, pero no sé si este es el enfoque correcto, ya que parece que es más adecuado para las operaciones.

Tengo una instancia de API Management (https://my-apim.azure-api.net) con 2 API:

AP1 1:- https://my-apim.azure-api.net/api1

AP1 2: https://my-apim.azure-api.net/api2

Quiero implementar un caso en el que APIM redirige a la página de inicio de sesión (por ejemplo, https://www.mywebsite.com/login) si se llama a mi APIM sin el sufijo API (por ejemplo, "/api2").

¿Cómo haría esto?

Hola, consulta la solución que te proporcioné a continuación. Si ayuda con su problema, acéptela como respuesta (haga clic en la marca de verificación junto a mi respuesta para alternar entre atenuada y completa). Gracias de antemano~

-Hury Shen

29 de marzo de 2021 a las 2:52



------------------------------------

"Todas las API" La política se ejecuta para cada solicitud que recibe APIM. La sección de error, entre otros casos, se ejecuta si la solicitud recibida no coincide con ninguna operación registrada en APIM. Consulte este documento sobre cómo manejar errores como 404 y otros: https://learn.microsoft.com/en-us/azure/api-management/api-management-error-handling-policies, pero en resumen, agregar algo como lo siguiente en caso de error en el alcance de Todas las API debería ser suficiente:

<choose>
  <when condition="@(context.LastError.Reason == "OperationNotFound")">
    <return-response>
      <set-status code="307" reason="Temporary Redirect"/>
      <set-header name="Location" exists-action="override">
        <value>https://www.mywebsite.com/login</value>
      </set-header>
    </return-response>
  </when>
</choose>

Puede implementar comprobaciones adicionales para apuntar específicamente al escenario cuando no se proporciona el sufijo, pero lo anterior cubrirá todos los casos en los que el URI no coincide con ninguna operación.



------------------------------------

Para sus necesidades, parece que la política rewrite-uri no puede implementarla. Consulte mis pasos a continuación:

1. Tengo dos API (igual que la tuya) en mi instancia APIM.

2. Luego haga clic en "Agregar API"." Para crear otra API, podemos nombrarla como root. Y configure su URL de inicio de sesión como "URL del servicio web"

3. Después de eso, agregue la operación en la raíz de API recién creada. Proporcione la pantalla y simplemente escriba / en la "URL" cuadro de entrada.

4. Ahora puede probar la solicitud de su URL APIM https://my-apim.azure-api.net sin api1/api2, lo redirigirá a su página de inicio de sesión.

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare