¿Qué es una política?

Apigee te permite “programar” el comportamiento de la API sin escribir ningún código mediante “políticas”. Una política es como un módulo que implementa una función de administración específica y limitada. Las políticas están diseñadas para permitirte agregar tipos comunes de capacidades de administración a una API de forma fácil y confiable. Las políticas proporcionan funciones como seguridad, limitación de frecuencia, transformación y capacidades de mediación, lo que evita que debas codificar y mantener esta funcionalidad por tu cuenta.

No estás limitado al conjunto de tipos de políticas que proporciona Apigee. También puedes escribir secuencias de comandos y códigos personalizados (como aplicaciones JavaScript), que extienden la funcionalidad del proxy de la API y te permiten innovar con las capacidades de administración básicas compatibles con las políticas de Apigee.

Mira este video para ver una introducción al archivo adjunto y la aplicación forzosa de las políticas.

Tipos de políticas

Técnicamente, una política es un archivo de configuración con formato XML. La estructura de cada tipo de política (por ejemplo, los elementos de configuración obligatorios y opcionales) está definida por un esquema XML. Si dominas las herramientas XML, vale la pena familiarizarte con los esquemas de políticas en las muestras de la plataforma de API en GitHub.

Los tipos de políticas de Apigee se agrupan en las siguientes categorías funcionales:

Administración del tráfico

Las políticas en la categoría de administración de tráfico te permiten controlar el flujo de mensajes de solicitud y respuesta a través de un proxy de API. Estas políticas admiten el control operativo y de nivel de la empresa. Te permiten controlar la capacidad de procesamiento sin procesar y también pueden controlar el tráfico por app. Los tipos de políticas de administración de tráfico te permiten aplicar cuotas y también te ayudan a mitigar los ataques de denegación del servicio.

Security

Las políticas de la categoría de seguridad admiten la autenticación, la autorización y la seguridad basada en el contenido.

Mediación

Las políticas de la categoría de mediación te permiten manipular de forma activa los mensajes a medida que fluyen a través de los proxies de la API. Te permiten transformar los formatos de mensajes, de XML a JSON (y viceversa), o transformar un formato XML a otro formato XML. También te permiten analizar los mensajes, generar mensajes nuevos y cambiar los valores de los mensajes salientes. Las políticas de mediación también interactúan con los servicios básicos expuestos por los servicios de API, lo que te permite recuperar datos sobre apps, desarrolladores, tokens de seguridad y productos de API en el entorno de ejecución.

Extensión

Las políticas en la categoría de extensión te permiten aprovechar la ampliación de los servicios de API para implementar un comportamiento personalizado en el lenguaje de programación que elijas.

Cada tipo de política se documenta en detalle en la descripción general de referencia de la política. En este tema, se demuestra una interacción general, se muestra cómo crear políticas y cómo adjuntarlas a flujos en una configuración de proxy de API.

Implementa cambios en la política

Para que los cambios de política se apliquen, debes implementar la revisión del proxy de API en un entorno. Después de adjuntar una política o realizar cambios en una política existente, usa la IU de Apigee o la API de Apigee para implementar los cambios.

Verifica la aplicación de la política

Para verificar que una política se aplique de forma correcta, un cliente HTTP debe invocar la API. Para verificar esta configuración de la cuota, envía varias solicitudes a la API y excede el límite de cuota que estableciste en la política de cuotas (la ruta de acceso del URI, configurada como la configuración de ruta base en el ProxyEndpoint, en la solicitud siguiente es /weather).

http://{org_name}-test.apigee.net/weather/forecastrss?w=12797282

Después de enviar más de 1 solicitud en un minuto, deberías ver el siguiente mensaje de error:

{
   "fault":{
      "faultstring":"policies.ratelimit.QuotaViolation",
      "detail":{
         "errorcode":"policies.ratelimit.QuotaViolation"
      }
   }
}

Esto indica que la política de cuotas se aplica a los servicios de API.

Manejo de fallas basado en políticas

Ten en cuenta el formato del mensaje de error anterior. Contiene una propiedad faultstring y una propiedad errorcode. En muchos casos, debes implementar algún comportamiento para manejar estos errores. Por ejemplo, es posible que desees emitir un mensaje personalizado para un desarrollador cuya app superó la cuota.

Para obtener más información sobre el manejo de fallas, consulta Controla las fallas.

Prácticas recomendadas: conjuntos de políticas comunes

Para cumplir con los requisitos básicos de administración, los proxies de API suelen aplicar las siguientes políticas:

Validación básica de claves de API

Flujo de solicitud ProxyEndpoint:
  1. SpikeArrest
  2. XMLThreatProtection o JSONThreatProtection
  3. Validación de la clave de API
  4. Cuota
  5. ResponseCache
Flujo de respuesta ProxyEndpoint:
  1. ResponseCache

Transformación básica: JSON a XML

Flujo de solicitud:
  1. SpikeArrest
  2. JSONThreatProtection
  3. Validación de la clave de API
  4. Cuota
  5. JSONToXML
Flujo de respuesta:
  1. XMLToJSON
  2. ResponseCache