Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
Las políticas no se ejecutan hasta que se adjuntan a un flujo. Puedes crear un archivo adjunto de política dándole un nombre a una política en una configuración de paso.
La elección del punto de acoplamiento es fundamental para el comportamiento de tu proxy de API. Por ejemplo, si adjuntas la política Quota a un flujo de respuesta, la cuota se aplicará después de que se envíe el mensaje de solicitud al servicio de backend. De lo contrario, no tendría sentido aplicar una política de cuotas. Por lo tanto, debe adjuntar la política de cuota como paso de procesamiento en el flujo de la solicitud.
El formato de un archivo adjunto de una política es el siguiente:
<Step> <Name>{policy_name}</Name> </Step>
Por ejemplo:
<Step> <Name>QuotaPolicy</Name> </Step>
Una política se vincula a un flujo añadiendo la configuración de Step al elemento Flow de solicitud o respuesta adecuado en una configuración de ProxyEndpoint o TargetEndpoint.
Puedes adjuntar una política a un flujo de solicitudes o de respuestas. Los flujos de solicitud y respuesta se dividen en PreFlow y PostFlow.
En el siguiente ejemplo se muestra la configuración mínima de ProxyEndpoint, sin archivos adjuntos de políticas. Simplemente define la HTTPProxyConnection (de entrada) y una RouteRule.
<ProxyEndpoint name="default"> <HTTPProxyConnection> <BasePath>/weather</BasePath> <VirtualHost>default</VirtualHost> </HTTPProxyConnection> <RouteRule name="default"> <TargetEndpoint>default</TargetEndpoint> </RouteRule> </ProxyEndpoint>
Debes modificar esta configuración para que ProxyEndpoint aplique una política de cuota (como paso de procesamiento) antes de que el proxy de API realice cualquier otro procesamiento. Si un desarrollador ha superado una cuota, no querrás desperdiciar recursos computacionales en solicitudes adicionales.
Para aplicar esta configuración, adjunta un paso de procesamiento al PreFlow de la solicitud de la siguiente manera:
<ProxyEndpoint name="default"> <PreFlow> <Request> <Step><Name>QuotaPolicy</Name></Step> </Request> </PreFlow> <HTTPProxyConnection> <BasePath>/weather</BasePath> <VirtualHost>default</VirtualHost> </HTTPProxyConnection> <RouteRule name="default"> <TargetEndpoint>default</TargetEndpoint> </RouteRule> </ProxyEndpoint>
En ocasiones, puede que quieras que una política se ejecute después de que se haya realizado algún otro procesamiento inicial en el ProxyEndpoint. Por ejemplo, quieres comprobar la cuota en PreFlow y, después, realizar otro conjunto de procesos tras comprobar la cuota, como convertir la solicitud de JSON a XML. Para ello, adjunta una política a la ruta de solicitud PostFlow. A continuación, se muestra una solicitud de ejemplo de archivo adjunto PostFlow. Esta política se ejecutaría en el mensaje de solicitud después de que se ejecuten todas las políticas de PreFlow (y cualquier flujo condicional).
<PostFlow> <Request> <Step><Name>JSONtoXMLPolicy</Name></Step> </Request> </PostFlow>
A continuación se muestra un ejemplo de respuesta de PostFlow con un archivo adjunto. Esta política se ejecutaría en el mensaje de respuesta. (El PostFlow de la respuesta de ProxyEndpoint es la fase de procesamiento final antes de que la respuesta se devuelva a la aplicación cliente que ha enviado la solicitud).
<PostFlow> <Response> <Step><Name>XMLtoJSONPolicy</Name></Step> </Response> </PostFlow>