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 Assign Message y Raise Fault
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, lo siguiente 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 tal 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 Assign Message y Raise Fault policy. (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 lo siguiente:
- Tratar algunos elementos XML como arrays durante la conversión, lo que coloca los valores entre corchetes '[ ]' en el documento JSON
- Quitar o eliminar niveles de la jerarquía del documento XML en el documento JSON final
Para obtener más información, consulta la política de XML a JSON. (APIRT-1144)
Varios comodines en las rutas de acceso de recursos de productos de API
Cuando defines rutas de acceso de recursos en el producto de API, puedes incluir comodines en varios lugares de una
ruta de acceso de recursos. Por ejemplo, /team/*/invoices/** permite llamadas a la API con cualquier
valor después de /team y cualquier ruta de acceso 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 acceso de recursos de productos de API existentes 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 criptográficas en JavaScript
Hay un nuevo conjunto de funciones crypto de JavaScript de alto rendimiento disponibles
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 objeto de JavaScript.
(APIRT-2886)
Verificación de la versión de JAR de Java Callout
Cuando se sube un recurso JAR de Java a un proxy de API, se muestra 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 compatible con 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 JavaScript o JAR de Java) almacenados en el alcance del entorno o la organización, el framework de validación ya no requiere que también incluyas esos recursos en el 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 proxies de API para que se agote 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 la nube privada 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 api.timeout propiedad en la configuración de un proxy de API. A continuación, te mostramos cómo hacerlo con el ejemplo de 3 minutos:
- 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.
- Luego, configura los proxies pertinentes 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> ... - Sin embargo, ten en cuenta que aumentar los tiempos de espera del sistema puede generar problemas de rendimiento, porque
todos los proxies sin una configuración de api.timeout usan el tiempo de espera del balanceador de cargas, el router y el
procesador de mensajes nuevos. 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. En el siguiente ejemplo, se 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 incluye en la referencia de propiedades de extremos. (APIRT-1778)
TLS/SSL para la política de registro de mensajes
<KeyStore> y <TrustStore> se pueden establecer en la
configuración de SSLInfo en la política de registro de mensajes,
lo que permite TLS/SSL unidireccional y bidireccional con un servicio de registro. Configuras SSLInfo en la política de registro de mensajes de la misma manera que lo
harías en un proxy
TargetEndpoint. 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 | Descripción |
|---|---|
| SECENG-609 | Las llamadas de tiempo de ejecución no fallan durante la eliminación del almacén de confianza asociado o cuando se borra el certificado válido en el almacén de confianza |
| MGMT-3404 | Ver o recuperar registros de Node.js y la implementación de proxies es muy lenta |
| MGMT-3400 | La llamada a la API de administración /userroles falla si el usuario que realiza la llamada tiene un "+" 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 | Las entradas de lista en una bóveda que tiene un valor nulo en una de las entradas no funcionan para las organizaciones (CPS y no CPS) |
| MGMT-3226 | La consulta a nivel de la organización o el entorno no debe extraer todos los datos que hacen que falle la API Release_160302 tenía un error en el que fallaba la lista de recursos a nivel de la organización o el entorno si el tamaño acumulativo de los recursos era superior a 16 MB. Esta corrección se encarga de ello. |
| AXAPP-2429 | **La API de Analytics que usa response_status_code muestra un error de acceso a los datos** |
| AXAPP-2386 | Se corrigió el contenido de los informes vacíos en los informes diarios por correo electrónico de estadísticas |
| AXAPP-2347 | No se reciben correos electrónicos diarios de resumen de estadísticas |
| APIRT-3141 | Las llamadas de código 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 createdBy incorrecto para un proxy de API cuando se usa la monetización con un proveedor de autenticación externo |
| APIRT-3121 | El cambio 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 publicar tráfico |
| APIRT-3016 | Errores de “tiempo de espera agotado” del router en las implementaciones |
| APIRT-2975 | Falla en la carga del paquete de certificados |
| APIRT-2955 | No se pueden enmascarar ciertos atributos de los datos de respuesta JSON para el encabezado Content-Type compatible con FHIR “application/json+fhir” |
| APIRT-2946 | La política OAuthV2-RefreshToken no oculta los atributos, aunque la pantalla esté configurada como falsa |
| 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 MP muestran NullPointerException relacionado con VerifyAPIKey después de borrar productos, desarrolladores o proxies |
| APIRT-2871 | Las políticas IOIntensive aparecen dos veces en Trace |
| 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 con un error desconocido |
| APIRT-2647 | Error “Underlying input stream returned zero bytes” con nonprod/dev |
| APIRT-2630 | Problemas intermitentes cuando se intenta 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 las políticas de caché de respuesta |
| APIRT-2605 | No se debe permitir que las variables"organization" y "environment" se anulen a través de las políticas |
| APIRT-2566 | La política de OAuthV2 muestra un encabezado WWW-Authenticate con formato incorrecto |
| APIRT-2491 | No se pudo actualizar TargetServer debido al tiempo de espera de RPC entre la administración y los MPS |
| APIRT-2386 | Se crea un alcance de cadena vacío en un producto de API con un alcance de OAuth permitido vacío scopes |
| APIRT-2383 | Las políticas de transformación XSL no parecen registrar ningún dato en caso de error |
| APIRT-2364 | Las variables de flujo de fallas de OAuth no se actualizan en caso de error |
| APIRT-2216 | Eventos enviados por el servidor: el flujo de eventos tiene problemas en la producción |
| APIRT-2079 | La llamada 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 tipo de contenido fhir |
| APIRT-347 | La política XSL no se valida correctamente durante la importación (no asigna resultados a las variables de salida como se documenta) |