Paso 5: Agrega una política.

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

Ahora que cambiaste el extremo de destino, estás listo para agregar una política al proxy.

Una política es un componente de Apigee que se puede conectar a diferentes puntos en el flujo de mensajes a través de sus proxies de API. Las políticas pueden transformar los formatos de los mensajes, aplicar control de acceso, llamar a servicios remotos, autorizar a usuarios, examinar el contenido de los mensajes en busca de posibles amenazas y mucho más.

En este instructivo, agregarás la política de XML a JSON a tu proxy. Esta política convierte la carga útil de un mensaje XML en JSON. También cambia el encabezado Content-Type de la respuesta.

Puedes adjuntar una política a un flujo en el proxy. Los flujos controlan cómo se ejecutan las políticas. En este ejemplo, agregarás la política a un flujo especial, llamado PreFlow. Las políticas en el PreFlow se ejecutan antes que cualquier otra política en el proxy. Si bien no es necesario comprender los flujos en detalle para leer este ejemplo, puedes obtener más información sobre ellos en Controla proxies de API con flujos.

Editor de proxies nuevo

Hay dos pasos para agregar la política XMLtoJSON a tu proxy:

Crea una instancia de la política

Para usar una política, primero debes crear una instancia nueva de la política a partir de la plantilla de políticas de la siguiente manera:

  1. Si usas la IU de Apigee en la consola de Cloud, selecciona Desarrollo de proxy > Proxies de API.

    Si usas la IU clásica de Apigee, selecciona Desarrollar > Proxies de API y, en el panel Proxies, selecciona el entorno para el proxy.

  2. En la lista de proxies, selecciona el proxy en el que deseas agregar la política.
  3. Haz clic en la pestaña Desarrollar:

  4. En el panel izquierdo, haz clic en el botón + junto a la carpeta Políticas.
  5. En el cuadro de diálogo Crear política, haz clic en el campo Seleccionar tipo de política, desplázate hacia abajo hasta mediación y selecciona XML a JSON.

  6. De manera opcional, puedes cambiar el Nombre y el Nombre visible de la política. De forma predeterminada, Apigee proporciona un prefijo corto para el nombre de la política, en este caso, X2J-. Puedes agregar una secuencia de palabras descriptivas separadas por guiones después del prefijo. Consulta Convenciones de nombres.

    Crear cuadro de diálogo de la política.

    Cuando hayas terminado, haz clic en Crear para crear la política.

La política XML a JSON se muestra ahora en el panel a la derecha de la vista Desarrollar:

Política XML a JSON que se muestra en la vista de desarrollo.

La mitad inferior del panel muestra el código XML de la política.

Para obtener más información sobre la política, selecciona el ícono de información Ícono de información. junto al nombre de la política y haz clic en la Política XML a JSON. Esto muestra la página de referencia de la política.

Cambia el nombre de la política

Para cambiar el nombre de una política, haz lo siguiente:

  1. Selecciona la política en Políticas en el panel de la izquierda.
  2. En el elemento <Nombre visible> en el código XML de la política, agrega una frase descriptiva para la política, como change-xml-to-json, después de la abreviatura del nombre de la política:

    Agrega change-xml-to-json al nombre de la política.

    Esto actualiza automáticamente el nombre de la política que se muestra en Políticas.

    Consulta Convenciones de nombres.

Adjunta la política a un paso en el PreFlow

Ahora que creaste la política XML To JSON, puedes adjuntarla a un paso en el PreFlow:

  1. Selecciona Extremos de Proxy > configuración predeterminada> PreFlow en el panel izquierdo:

    Extremos de destino para PreFlow seleccionados en el Explorador de proxy.

    Nota: Es posible que debas expandir el editor visual en el panel de la derecha para ver todos los elementos. Para ello, haz clic y arrastra el divisor entre el editor visual y el editor de texto un poco hacia abajo.

  2. Haz clic en el botón + junto a PreFlow en el panel Respuesta en la esquina inferior derecha del editor visual:

    Haz clic en el botón + junto al PreFlow en el panel Respuesta.

  3. En el cuadro de diálogo Agregar paso de la política, selecciona la política X2J-change-xml-to-json.
  4. Haz clic en Agregar para adjuntar la política.

    La política X2J-change-xml-to-json ahora se muestra en el panel Respuesta:

    Política XML To JSON que se muestra en el panel Respuesta.

  5. Haga clic en Save para guardar la revisión actual con sus cambios.
  6. Para implementar los cambios en la revisión, haz clic en Implementar y sigue las instrucciones en Implementa un proxy de API.

Editor de proxies clásico

Para agregar la política de XMLtoJSON a tu proxy, haz lo siguiente:

  1. Abre la IU de Apigee en un navegador y accede a tu cuenta.
  2. Haz clic en Proxies de API en la ventana principal y selecciona un proxy. Para este ejemplo, selecciona el proxy que creaste en el Paso 2: Crea un proxy de API.
  3. Haz clic en la pestaña Develop:

    Selecciona la pestaña Desarrollo en el Editor de proxies.

    Apigee muestra el editor de proxy de API.

  4. En el panel Navegador, haz clic en Proxy Endpoints > default > PreFlow:

    Apigee muestra el editor de flujo:

    Editor de flujos.

    Además, Apigee muestra la configuración de extremo del proxy predeterminada en el panel Código:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ProxyEndpoint name="default">
      <Description/>
      <FaultRules/>
      <PreFlow name="PreFlow">
        <Request/>
        <Response/>
      </PreFlow>
      <PostFlow name="PostFlow">
        <Request/>
        <Response/>
      </PostFlow>
      <Flows/>
      <HTTPProxyConnection>
        <BasePath>/myproxy</BasePath>
        <Properties/>
        <VirtualHost>default</VirtualHost>
        <VirtualHost>secure</VirtualHost>
      </HTTPProxyConnection>
      <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
      </RouteRule>
    </ProxyEndpoint>
  5. Para agregar una política a tu proxy, haz clic en el botón + Paso en el procesamiento previo de la respuesta (la mitad inferior del editor de flujo):

    Botón + Paso en el PreFlow de respuesta.

    Apigee muestra una lista categorizasa de políticas en el cuadro de diálogo Agregar que puedes agregar a tu flujo:

    Lista de políticas.

  6. Desplázate hacia abajo y selecciona la política de XMLtoJSON en la categoría Mediación.
  7. Deja los nombres predeterminados y haz clic en Agregar.

    Apigee adjunta la nueva política al PreFlow de la respuesta:

    Se adjuntó una política nueva en el flujo previo de la respuesta.

    Ten en cuenta que si haces clic en Agregar, Apigee hará lo siguiente:

    • Agregará la política nueva en Políticas, en el panel de navegación.
    • Agregará la política de XMLtoJSON en el panel Flujo.
    • Mostrará la configuración XML de la política en panel de código.
  8. Haz clic en Guardar para guardar la revisión actual con sus cambios.
  9. Para implementar los cambios, haz clic en la pestaña Descripción general y en el botón Implementar.

Prueba la política nueva

Para probar la política nueva, ejecuta el siguiente comando de curl en una ventana de terminal:

curl https://YOUR_ENV_GROUP_HOSTNAME/myproxy

En el ejemplo anterior, YOUR ENV_GROUP_HOSTNAME es el nombre de host del grupo de entornos. Consulta Encuentra el nombre de host del grupo de entornos.

Consulta Llama al proxy de API para obtener más información.

Como alternativa, puedes abrir la misma URL en un navegador.

Deberías recibir la siguiente respuesta:

{
  "root": {
    "city": "San Jose",
    "firstName": "John",
    "lastName": "Doe",
    "state": "CA"
  }
}

Si el cuerpo de la respuesta no es similar a este, verifica lo siguiente:

  1. Tu extremo de destino es https://mocktarget.apigee.net/xml, como se describe en Paso 4: Cambia tu extremo de destino:
    • Si obtienes Hello, Guest! como respuesta, debes adjuntar /xml al final del extremo de destino.
    • Si obtienes un 404, verifica que estás accediendo a apigee.net y no a apigee.com.
  2. Se implementa la última revisión de tu proxy. Intenta volver a implementar el proxy de API como se describe en Implementa un proxy de API y Anula la implementación de un proxy de API.

Para ver los encabezados de respuesta y solicitud HTTP, habilita la verbosidad en curl con la opción -vs (v hace que la respuesta sea detallada, pero s suprime algunos de los detallades menos interesantes). En el siguiente ejemplo, se supone que el proxy se llama myproxy:

curl -vs https://YOUR_ENV_GROUP_HOSTNAME/myproxy  | python -m json.tool

Deberías obtener una respuesta similar a la siguiente. Ten en cuenta que el encabezado Content-Type en la respuesta es application/json. La política de XMLtoJSON cambia el encabezado antes de enviar la respuesta.

*   Trying 10.20.30.40...
* TCP_NODELAY set
* Connected to apitest.acme.com (10.20.30.40) port 443 (#0)
...
> GET /myproxy HTTP/1.1
> Host: apitest.acme.com
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 25 May 2018 16:20:00 GMT
< Content-Type: application/json;charset=UTF-8
< Content-Length: 77
< Connection: keep-alive
< X-Powered-By: Apigee
< Access-Control-Allow-Origin: *
...
{ [77 bytes data]
{
  "root": {
    "city": "San Jose",
    "firstName": "John",
    "lastName": "Doe",
    "state": "CA"
  }
}

Próximo paso

Más información