Comparteix via


Tutorial: Transformación y protección de una API

SE APLICA A: todos los niveles de API Management

En este tutorial, obtendrá información sobre cómo configurar directivas para proteger o transformar su API. Las directivas son un conjunto de instrucciones que se ejecutan secuencialmente en la solicitud o respuesta de una API y que modifican su comportamiento.

Sugerencia

Los equipos de API pueden usar esta característica en áreas de trabajo. Las áreas de trabajo proporcionan acceso administrativo aislado a las API y sus propios entornos de tiempo de ejecución de API.

Por ejemplo, es posible que quiera establecer un encabezado de respuesta personalizado. O bien, configure una directiva de límite de velocidad para proteger la API de back-end, por lo que los desarrolladores no sobrecargan la API. Estos ejemplos son una introducción sencilla a las directivas de API Management. Para obtener más opciones sobre la directiva, consulte Directivas de API Management.

Nota

De forma predeterminada, API Management configura una directiva global forward-request. La directiva forward-request es necesaria para que la puerta de enlace complete una solicitud a un servicio back-end.

En este tutorial, aprenderá a:

  • Transformación de una API para establecer un encabezado de respuesta personalizado
  • Proteja una API añadiendo una política de límite de velocidad o limitación
  • Prueba de las transformaciones

Captura de pantalla de las directivas de API Management en el portal.

Requisitos previos

Vaya a la instancia de API Management.

  1. En Azure Portal, busque y seleccione Servicios de API Management:

    Captura de pantalla que muestra los servicios de API Management en los resultados de la búsqueda.

  2. En la página Servicios de API Management , seleccione la instancia de API Management:

    Captura de pantalla que muestra una instancia de API Management en la página servicios de API Management.

Prueba de la respuesta original

Para ver la respuesta original, siga estos pasos:

  1. En su instancia de servicio de API Management, seleccione APIs>APIs.
  2. En la lista de API, seleccione Swagger Petstore.
  3. En la parte superior de la pantalla, seleccione Probar.
  4. Seleccione la operación GET Finds Pets by status (Buscar mascotas por estado) y, opcionalmente, seleccione un valor diferente del parámetro Queryde estado.
  5. Selecciona Enviar.

La respuesta de la API original debe ser similar a la siguiente:

Captura de pantalla de la respuesta de API original en Azure Portal.

Transformación de una API para agregar un encabezado de respuesta personalizado

API Management incluye varias directivas de transformación que puede usar para modificar cargas de solicitud o respuesta, encabezados o códigos de estado. En este ejemplo, se establece un encabezado de respuesta personalizado en la respuesta de la API.

Establecimiento de la directiva de transformación

Esta sección le muestra cómo configurar un encabezado de respuesta personalizado usando la directiva set-header. Aquí se usa un editor de directivas basado en formularios que simplifica la configuración de las directivas.

  1. Seleccione Swagger Petstore>Diseño>Todas las operaciones.

  2. En la sección Procesamiento de salida, seleccione Agregar directiva.

    Captura de pantalla de la navegación a la directiva de salida en el portal.

  3. En la ventana Agregar directiva de salida, seleccione Establecer encabezados.

    Captura de pantalla de la configuración de la directiva Establecer encabezados en el portal.

  4. Para configurar la directiva de establecer encabezados:

    1. En Nombre, escriba Personalizado.
    2. En Valor, seleccione + Agregar valor. Escriba Mi valor personalizado.
    3. Seleccione Guardar.

    Tras la configuración, aparece un elemento de directiva set-header en la sección Procesamiento de salida.

    Captura de pantalla de las directivas de salida Establecer encabezados en el portal.

Protección de una API mediante la adición de una directiva de límite de velocidad

En esta sección se muestra cómo agregar protección a la API de back-end mediante la configuración de límites de velocidad, de modo que los desarrolladores no usen la API por encima de ella. En este ejemplo se muestra cómo configurar la directiva rate-limit-by-key mediante el editor de código. En este ejemplo, el límite se establece en tres llamadas por 15 segundos. Después de 15 segundos, un desarrollador puede volver a tratar de llamar a la API.

Nota

Esta directiva no se admite en el nivel Consumo.

  1. Seleccione Swagger Petstore>Diseño>Todas las operaciones.

  2. En la sección Procesamiento de entrada, seleccione el icono del editor de código (</>).

    Captura de pantalla de la navegación al editor de código de directiva de entrada en el portal.

  3. Coloque el cursor dentro del elemento <inbound> en una línea en blanco. A continuación, seleccione Mostrar fragmentos de código en la esquina superior derecha de la pantalla.

    Captura de pantalla de la selección de mostrar fragmentos de código en el editor de directivas de entrada en el portal.

  4. En la ventana derecha, en Access restriction policies (Directivas de restricción de acceso), seleccione Limit call rate per key (Limitar la frecuencia de llamadas por clave).

    El elemento <rate-limit-by-key />se agrega en la posición del cursor.

    Captura de pantalla de la inserción de la tasa de llamadas de límite por directiva de clave en el portal.

  5. Cambie el código <rate-limit-by-key /> en el elemento <inbound> por el código siguiente. Después, seleccione Guardar.

    <rate-limit-by-key calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
    

Prueba de las transformaciones

Llegados a este punto, si examina el código en el editor de código, las directivas tienen el aspecto del código siguiente:

<policies>
     <inbound>
         <rate-limit calls="3" renewal-period="15" counter-key="@(context.Subscription.Id)" />
         <base />
     </inbound>
     <outbound>
         <set-header name="Custom" exists-action="override">
             <value>"My custom value"</value>
           </set-header>
         <base />
     </outbound>
     <on-error>
         <base />
     </on-error>
 </policies>

En el resto de esta sección se prueban transformaciones de directiva que estableció en este artículo.

Prueba del encabezado de respuesta personalizado

  1. Seleccione Swagger Petstore>Prueba.

  2. Seleccione la operación GET Finds Pets by status (Buscar mascotas por estado) y, opcionalmente, seleccione un valor diferente del parámetro Queryde estado. Selecciona Enviar.

    Como puede ver, se agrega el encabezado de respuesta personalizado:

    Recorte de pantalla que muestra el encabezado de respuesta personalizado en el portal.

Prueba del límite de velocidad

  1. Seleccione Swagger Petstore>Prueba.

  2. Seleccione la operación GET Finds Pets by status (Buscar mascotas por estado ). Seleccione Enviar varias veces en una fila.

    Después de enviar demasiadas solicitudes en el período configurado, obtendrá la respuesta 429 Demasiadas solicitudes.

    Captura de pantalla que muestra demasiadas solicitudes en la respuesta en el portal.

  3. Espere 15 segundos o más, y luego seleccione de nuevo Enviar. Esta vez debería obtener una respuesta 200 OK.

Obtener ayuda de Copilot

Puede obtener ayuda de inteligencia artificial de Copilot para crear y editar las definiciones de directivas de API Management. Puede usar Copilot para crear y actualizar directivas que coincidan con sus requisitos específicos sin necesidad de conocer la sintaxis XML. También puede obtener explicaciones de las directivas existentes. Y Copilot puede ayudarle a traducir las directivas que podría haber configurado en otras soluciones de API Management.

  • Azure Copilot proporciona asistencia para la creación de directivas con avisos de lenguaje natural en Azure Portal. Puede crear directivas en el editor de directivas de API Management y pedir a Copilot que explique las secciones de directivas.
  • GitHub Copilot para Azure en Visual Studio Code proporciona asistencia para la creación de directivas en Visual Studio Code y puede usar la extensión de Azure API Management para Visual Studio Code para acelerar la configuración de directivas. Puede utilizar Copilot Chat o Copilot Edits con lenguaje natural para crear y refinar directamente las definiciones de directivas.

Mensaje de ejemplo:

Generate a policy that adds an Authorization header to the request with a Bearer token.

Copilot se basa en la inteligencia artificial, por lo que son posibles sorpresas y errores. Para obtener más información, consulte Preguntas más frecuentes sobre el uso general de Copilot.

Resumen

En este tutorial ha aprendido a:

  • Transformación de una API para establecer un encabezado de respuesta personalizado
  • Protección de una API mediante la adición de una directiva de límite de velocidad
  • Prueba de las transformaciones

Paso siguiente

Avance hasta el siguiente tutorial: