Paso 5: Añade una política

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

Consulta la documentación de Apigee Edge.

Ahora que ha cambiado el endpoint de destino, puede añadir una política a su proxy.

Una política es un componente de Apigee que puedes adjuntar a diferentes puntos del flujo de mensajes a través de tus proxies de API. Las políticas pueden transformar formatos de mensajes, aplicar el control de acceso, llamar a servicios remotos, autorizar a usuarios, examinar el contenido de los mensajes para detectar posibles amenazas y mucho más.

En este tutorial, vas a añadir la política XMLtoJSON 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, añadirás la política a un flujo especial llamado PreFlow. Las políticas de PreFlow se ejecutan antes que cualquier otra política del proxy. Aunque no es necesario que conozcas los flujos en detalle para leer este ejemplo, puedes obtener más información sobre ellos en el artículo Controlar proxies de APIs mediante los flujos.

Añade la política

Añade la política XMLtoJSON a tu proxy.

Apigee en la consola de Cloud

Para añadir la política XMLtoJSON a tu proxy, debes seguir estos dos pasos:

Crear una instancia de la política

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

  1. En la Google Cloud consola, ve a la página Desarrollo de proxy > Proxies de API.

    Ir a proxies de API

  2. En la lista de proxies, selecciona el proxy al que quieras añadir la política.
  3. Haz clic en la pestaña Desarrollar.

  4. En el panel de la izquierda, haga clic en el botón + situado junto a la carpeta Políticas.
  5. En el cuadro de diálogo Crear política, selecciona Políticas estándar para filtrar la lista de políticas disponibles por tipo de política.
  6. En el cuadro de texto Seleccionar tipo de política, desplázate hacia abajo hasta Mediación y selecciona XML a JSON.

  7. También 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 añadir una secuencia de palabras descriptivas separadas por guiones después del prefijo. Consulta las nomenclaturas.

    Cuadro de diálogo para crear una 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 de la derecha de la vista Desarrollo:

Política de XML a JSON mostrada en la vista Desarrollo.

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

Para obtener más información sobre la política, selecciona el icono de información Icono de información. situado junto al nombre de la política y haz clic en Política de XML a JSON. Se mostrará la página de referencia de la política.

Usar Gemini Code Assist para revisar las instrucciones de las políticas

Puedes usar Gemini Code Assist en la interfaz de usuario para obtener información sobre los elementos de las políticas. Consulta Usar la explicación de código de Gemini Code Assist con políticas para obtener más información.

Cambiar el nombre de la política

Para cambiar el nombre de una política, sigue estos pasos:

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

    Añade change-xml-to-json al nombre de la política.

    De esta forma, se actualiza automáticamente el nombre de la política, que se muestra en Políticas.

    Consulta las nomenclaturas.

Adjunta la política a un paso de PreFlow

Ahora que has creado la política XML a JSON, puedes adjuntarla a un paso de PreFlow:

  1. En el panel de la izquierda, selecciona Proxy Endpoints > default > PreFlow:

    Puntos de conexión de destino para la selección de PreFlow en el explorador de proxies.

    Nota: Es posible que tengas que ampliar el editor visual del panel de la derecha para ver todos los elementos. Para hacerlo, haz clic en la barra que separa el editor visual del editor de texto y arrástrala un poco hacia abajo.

  2. En el panel Respuesta, haz clic en el botón + situado junto a PreFlow, en la parte inferior derecha del editor visual:

    En el panel Respuesta, haz clic en el botón + situado junto a PreFlow.

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

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

    Política de XML a JSON mostrada en el panel Respuesta.

  5. Haz clic en Guardar para guardar la revisión actual con los cambios.
  6. Para desplegar los cambios en la revisión, haz clic en Desplegar y sigue las instrucciones de Desplegar un proxy de API.

UI clásica de Apigee

Para añadir la política XMLtoJSON a tu proxy, sigue estos pasos:

  1. Abre la interfaz de usuario de Apigee en un navegador e inicia sesión.
  2. En la ventana principal, haz clic en Proxies de API y selecciona un proxy. En este ejemplo, selecciona el proxy que has creado en el paso 2: crea un proxy de API.
  3. Haz clic en la pestaña Desarrollar:

    Haz clic en la pestaña Desarrollar del editor de proxy.

    Apigee muestra el editor de proxies de API.

  4. En el panel Navigator, haz clic en Endpoints de proxy > default > PreFlow:

    Apigee muestra el editor de flujo:

    Editor de flujo.

    Además, Apigee muestra la configuración predeterminada de Proxy Endpoint 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 añadir una política a tu proxy, haz clic en el botón + Paso en el PreFlow de respuesta (la mitad inferior del editor de flujo):

    Botón + Paso en el PreFlow de la respuesta.

    Apigee muestra una lista categorizada de políticas en el cuadro de diálogo Añadir que puedes añadir a tu flujo:

    Lista de políticas.

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

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

    Nueva política adjunta en el Preflow de la respuesta.

    Ten en cuenta que, al hacer clic en Añadir, Apigee hace lo siguiente:

    • Añade la nueva política en Políticas del panel Navegador.
    • Añade la política XMLtoJSON en el panel Flujo.
    • Muestra el XML de configuración de la política en el panel Código.
  8. Haz clic en Guardar para guardar la revisión actual con los cambios.
  9. Para implementar los cambios, haz clic en la pestaña Vista general y, a continuación, en el botón Implementar.

Probar la nueva política

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

curl https://YOUR_ENV_GROUP_HOSTNAME/myproxy

donde YOUR ENV_GROUP_HOSTNAME es el nombre de host del grupo de entornos. Consulta Buscar el nombre de host del grupo de entornos.

Consulta más información en Llama a tu proxy de API.

También 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 tiene este aspecto, comprueba lo siguiente:

  1. Tu punto de conexión de destino es https://mocktarget.apigee.net/xml, tal como se describe en el paso 4: Cambia el punto de conexión de destino:
    • Si recibes Hello, Guest! como respuesta, debes añadir /xml al final del endpoint de destino.
    • Si recibes un 404, comprueba que estás accediendo a apigee.net y no a apigee.com.
  2. Se ha desplegado la última revisión de tu proxy. Prueba a volver a desplegar tu proxy de APIs tal como se describe en Desplegar un proxy de APIs y Anular el despliegue de un proxy de APIs.

Para ver los encabezados de solicitud y respuesta HTTP, habilita la verbosidad en curl con la opción -vs (v hace que la respuesta sea detallada, pero s suprime algunos de los detalles menos interesantes). En el siguiente ejemplo se da por supuesto 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 de la respuesta es application/json. La política 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"
  }
}

Paso siguiente

Más información