16.08.17: Notas de la versión de Apigee Edge para la nube pública

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

El martes 30 de agosto de 2016, lanzamos una nueva versión de Apigee Edge para la nube pública.

Nuevas funciones y actualizaciones

A continuación, presentamos las nuevas funciones y actualizaciones de esta versión.

Cargas útiles de JSON en los mensajes de Assign y Raise Fault

Cuando se configuraba una carga útil JSON con una política de Assign Message o Raise Fault, a veces se les pedía a los usuarios que usaran soluciones alternativas para garantizar que un mensaje JSON tuviera el formato correcto en el tiempo de ejecución, como comenzar la carga útil con una barra inversa "\" o especificar un variablePrefix y un variableSuffix en el elemento Payload, incluso si no se usaban variables en el mensaje.

Con esta mejora, no se necesitan soluciones alternativas para garantizar el formato correcto de los mensajes JSON, y las variables se pueden especificar con llaves sin crear un JSON no válido. Por ejemplo, el siguiente código inserta el valor de message.content en el mensaje JSON:

<Payload contentType="application/json">{"message" : "{message.content}"}</Payload>

Si usaste una solución alternativa, tu código seguirá funcionando como está. También puedes usar variablePrefix y variableSuffix en lugar de llaves para indicar variables.

Consulta el elemento <Set><Payload> en los documentos de referencia de la política AssignMessage y la política Raise Fault. (APIRT-1160)

Mejoras en la política de XML a JSON

La política de XML a JSON se mejoró con las siguientes capacidades. Puedes configurar la política para que haga lo siguiente:

  • Trata algunos elementos XML como arrays durante la conversión, lo que coloca los valores entre corchetes "[ ]" en el documento JSON.
  • Quita o elimina niveles de la jerarquía del documento XML en el documento JSON final.

Para obtener más información, consulta Política de XML a JSON. (APIRT-1144)

Varios comodines en las rutas de recursos del producto de API

Cuando defines rutas de recursos en el producto de API, puedes incluir comodines en varios lugares de una ruta de recursos. Por ejemplo, /team/*/invoices/** permite llamadas a la API con cualquier valor después de /team y cualquier ruta de recursos después de invoices/. Un URI permitido en una llamada a la API sería proxyBasePath/team/finance/invoices/company/a.

Si, después de esta versión, las rutas de recursos de tu producto de API existente dejan de funcionar como se espera, establece la siguiente propiedad en tu organización para revertir al comportamiento anterior: features.enableStandardWildCardMatchForAPIProductResources = true

(MGMT-3273)

Funciones de Crypto en JavaScript

Hay disponible un nuevo conjunto de funciones crypto de JavaScript de alto rendimiento para crear, obtener y actualizar los siguientes objetos hash: MD5, SHA-1, SHA256 y SHA512. El objeto crypto también te permite obtener la fecha en varios formatos. Para obtener más información, consulta el modelo de objetos de JavaScript. (APIRT-2886)

Verificación de la versión del JAR de la llamada de código Java

Cuando se sube un recurso JAR de Java a un proxy de API, se devuelve un código de estado HTTP 400 (en lugar de un 500) si la versión del recurso de Java no es compatible con la versión de Java admitida por Edge, que se indica en Software y versiones compatibles. (MGMT-3420)

Validación de recursos del proxy de API

Cuando tienes archivos de recursos del proxy de API (como archivos JAR de JavaScript o Java) almacenados en el alcance del entorno o de la organización, el framework de validación ya no requiere que también incluyas esos recursos a nivel del proxy de API en un paquete de proxy para que la importación pase la validación. La validación de recursos ahora se realiza en el momento de la implementación, no en el momento de la importación. (MGMT-1430)

Configura el tiempo de espera para proxies de API individuales

Puedes configurar los proxies de API para que agoten el tiempo de espera después de un tiempo especificado (con un estado de tiempo de espera de puerta de enlace 504). El caso de uso principal es para los clientes de Private Cloud que tienen proxies de API que tardan más en ejecutarse. Por ejemplo, supongamos que necesitas proxies específicos para agotar el tiempo de espera en 3 minutos. Puedes usar una nueva propiedad api.timeout en la configuración de un proxy de API. A continuación, te mostramos cómo hacerlo con el ejemplo de 3 minutos:

  1. Primero, asegúrate de configurar el balanceador de cargas, el router y el procesador de mensajes para que se agote el tiempo de espera después de 3 minutos.
  2. Luego, configura los proxies relevantes para que se agote el tiempo de espera en 3 minutos. Especifica el valor en milisegundos. Por ejemplo:
    <ProxyEndpoint name="default">
      <HTTPProxyConnection>
        <BasePath>/v1/weather</BasePath>
        <Properties>
          <!-- api.timeout is in milliseconeds -->
          <Property name="api.timeout">180000</Property>
        </Properties>
        ...
  3. Sin embargo, ten en cuenta que aumentar los tiempos de espera del sistema puede generar problemas de rendimiento, ya que todos los proxies sin un parámetro de configuración de api.timeout usan los nuevos tiempos de espera más altos del balanceador de cargas, el router y el procesador de mensajes. Por lo tanto, configura otros proxies de API que no requieran tiempos de espera más largos para usar tiempos de espera más bajos. Por ejemplo, el siguiente comando establece un proxy de API para que el tiempo de espera se agote después de 1 minuto:
    <Property name="api.timeout">60000</Property>

Los clientes de Cloud, que no pueden modificar los tiempos de espera de Edge, también pueden configurar el tiempo de espera del proxy de API, siempre que el tiempo de espera sea menor que el tiempo de espera estándar del procesador de mensajes de Edge de 57 segundos.

No puedes propagar el valor con una variable. Esta propiedad se describe en la Referencia de propiedades de extremos. (APIRT-1778)

TLS/SSL para la política de registro de mensajes

<KeyStore> y <TrustStore> se pueden configurar en la configuración de SSLInfo en la política de Message Logging, lo que permite TLS/SSL unidireccional y bidireccional con un servicio de registro. Configuras SSLInfo en la política de Message Logging de la misma manera que lo harías en un TargetEndpoint del proxy. Sin embargo, el registro de mensajes TLS/SSL solo admite el protocolo TCP. (APIRT-1858)

Fallas corregidas

En esta versión, se corrigieron los siguientes errores. Esta lista está dirigida principalmente a usuarios que verifican si sus tickets de asistencia se corrigieron. No está diseñada para proporcionar información detallada a todos los usuarios.

ID del problema Description
SECENG-609 Las llamadas de tiempo de ejecución no fallan durante el borrado del almacén de confianza asociado o cuando se borra el certificado válido en el almacén de confianza
MGMT-3404 Visualizar o recuperar registros de Node.js y, luego, implementar proxies es muy lento
MGMT-3400 La llamada a la API de administración de /userroles falla si el usuario que realiza la llamada tiene un signo "+" en el nombre
MGMT-3368 java.lang.ArrayIndexOutOfBoundsException: 1, cuando se importa un paquete de proxy de API que contiene el directorio resources/node/resources
MGMT-3364 OAuthV2: Verificación de redirect_uri
MGMT-3319 No funciona la opción para enumerar las entradas de una bóveda que tiene un valor nulo en una de las entradas para las organizaciones (CPS y no CPS)
MGMT-3226 Las consultas a nivel de la organización o del entorno no deben extraer todos los datos, lo que provoca que la API falle
La versión 160302 tenía un error por el que fallaba la enumeración de recursos a nivel de la organización o del entorno si el tamaño acumulado de los recursos superaba los 16 MB. Esta corrección se encarga de solucionar el problema.
AXAPP-2429 La API de Analytics que usa response_status_code devuelve un error de acceso a los datos
AXAPP-2386 Se corrigió el contenido vacío de los informes en los correos electrónicos diarios de informes de Analytics
AXAPP-2347 No recibo correos electrónicos con el resumen diario de estadísticas
APIRT-3141 Los textos destacados de Java fallan cuando se llama a new ExecutionResult() , porque el constructor se hizo privado
APIRT-3140 La política ServiceCallout no funciona en las llamadas a la API de HEAD
APIRT-3131 Se muestra un valor incorrecto de createdBy para un proxy de API cuando se usa la monetización con un proveedor de autenticación externo
APIRT-3121 El cambio realizado en el archivo de recursos de la organización no es 100% efectivo
APIRT-3117 El MP alcanzó el 100% de uso de CPU y dejó de entregar tráfico
APIRT-3016 Errores de "Se agotó el tiempo de espera de la llamada" del router en las implementaciones
APIRT-2975 Error al subir el paquete de certificados
APIRT-2955 No se pueden enmascarar ciertos atributos de los datos de respuesta JSON para el encabezado Content-Type "application/json+fhir" compatible con FHIR
APIRT-2946 La política OAuthV2-RefreshToken no oculta los atributos, aunque la pantalla esté configurada como false
APIRT-2908 Se requiere la aplicación de TLS1.2 para la llamada a la API interna después de la actualización de TLS1.2 en el host virtual
APIRT-2901 Las respuestas comprimidas con gzip que se muestran desde la caché se comprimen dos veces
APIRT-2873 Los MPs arrojan NullPointerException relacionado con VerifyAPIKey después de borrar productos, desarrolladores o proxies
APIRT-2871 Las políticas de IOIntensive aparecen dos veces en el registro
APIRT-2825 Error gramatical en la respuesta de error de accesstoken
APIRT-2750 Fallas de tráfico altas en una organización específica
APIRT-2685 El tráfico no puede fluir y se genera un error desconocido
APIRT-2647 Error"Underlying input stream returned zero bytes" con nonprod/dev
APIRT-2630 Problemas intermitentes al intentar leer el valor de la caché
APIRT-2620 Grupo de subprocesos independiente para algunos pasos de bloqueo
APIRT-2610 java.lang.ClassCastException con la política de caché de respuesta
APIRT-2608 Error de análisis de encabezados Last-Modified en políticas de Response Cache
APIRT-2605 No se debe permitir que las variables"organization" y "environment" se reemplacen a través de políticas
APIRT-2566 La política de OAuthV2 devuelve un encabezado WWW-Authenticate con formato incorrecto
APIRT-2491 No se pudo actualizar TargetServer debido a un tiempo de espera de RPC entre la administración y el MPS
APIRT-2386 Se crea un alcance de cadena vacío en un producto de API con un campo de permisos de OAuth permitidos vacío
APIRT-2383 Las políticas de transformación XSL no parecen registrar ningún dato cuando se produce un error
APIRT-2364 Las variables de flujo de errores de OAuth no se actualizan cuando se produce un error
APIRT-2216 Eventos enviados por el servidor: El flujo de eventos tiene problemas en producción
APIRT-2079 La llamada a cURL de DEBUG no se detiene después de que vence el tiempo de espera de la sesión creada
APIRT-1495 La protección contra amenazas de XML no detecta el Content-Type de FHIR
APIRT-347 La política de XSL no se valida correctamente durante la importación (no asigna resultados a las variables de salida como se documentó)