Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.
Le mardi 30 août 2016, nous avons lancé une nouvelle version d'Apigee Edge pour le cloud public.
Nouvelles fonctionnalités et mises à jour
Vous trouverez ci-dessous les nouvelles fonctionnalités et mises à jour offertes par cette version.
Charges utiles JSON dans les messages "Assign" et "Raise Fault"
Grâce à cette amélioration, aucune solution de contournement n'est nécessaire pour garantir la mise en forme correcte des messages JSON. De plus, les variables peuvent être spécifiées à l'aide d'accolades sans créer de fichier JSON non valide. Par exemple, la commande suivante insère la valeur de message.content dans le message JSON :
<Payload contentType="application/json">{"message" : "{message.content}"}</Payload>
Si vous avez utilisé une solution de contournement, votre code continuera de fonctionner tel quel. Vous pouvez également utiliser variablePrefix et variableSuffix au lieu d'accolades pour indiquer les variables.
Consultez l'élément <Set><Payload> dans les documents de référence sur la règle AssignMessage et la règle RaiseFault. (APIRT-1160)
Améliorations apportées à la règle XML vers JSON
La règle XML vers JSON a été améliorée avec les fonctionnalités suivantes. Vous pouvez configurer la règle pour :
- Traitez certains éléments XML comme des tableaux lors de la conversion, ce qui place les valeurs entre crochets "[ ]" dans le document JSON.
- Supprime ou élimine des niveaux de la hiérarchie du document XML dans le document JSON final.
Pour en savoir plus, consultez Règle XML vers JSON. (APIRT-1144)
Plusieurs caractères génériques dans les chemins d'accès aux ressources des produits d'API
Lorsque vous définissez des chemins de ressources dans un produit d'API, vous pouvez inclure des caractères génériques à plusieurs endroits dans un chemin de ressource. Par exemple, /team/*/invoices/** autorise les appels d'API avec n'importe quelle valeur après /team et n'importe quel chemin de ressource après invoices/. Un URI autorisé lors d'un appel d'API serait proxyBasePath/team/finance/invoices/company/a.
Si, après cette version, les chemins d'accès aux ressources de vos produits API existants ne fonctionnent plus comme prévu, définissez la propriété suivante sur votre organisation pour revenir au comportement précédent : features.enableStandardWildCardMatchForAPIProductResources = true
(MGMT-3273)
Fonctions de chiffrement en JavaScript
Un nouvel ensemble de fonctions JavaScript crypto hautes performances est disponible pour créer, obtenir et mettre à jour les objets de hachage suivants : MD5, SHA-1, SHA256, SHA512.
L'objet crypto vous permet également d'obtenir la date dans différents formats. Pour en savoir plus, consultez la page Modèle d'objet JavaScript.
(APIRT-2886)
Vérification de la version JAR de l'appel Java
Lorsque vous importez une ressource JAR Java dans un proxy d'API, un code d'état HTTP 400 est renvoyé (au lieu de 500) si la version de la ressource Java n'est pas compatible avec la version de Java acceptée par Edge, listée dans Logiciels et versions compatibles. (MGMT-3420)
Validation des ressources de proxy d'API
Lorsque vous stockez des fichiers de ressources de proxy d'API (tels que des fichiers JAR JavaScript ou Java) au niveau de l'environnement ou de l'organisation, le framework de validation ne vous oblige plus à inclure également ces ressources au niveau du proxy d'API dans un bundle de proxy pour que l'importation soit validée. La validation des ressources a désormais lieu au moment du déploiement, et non de l'importation. (MGMT-1430)
Configurer le délai d'inactivité pour des proxys d'API individuels
Vous pouvez configurer des proxys d'API pour qu'ils expirent au bout d'une période spécifiée (avec un état 504 Gateway Timeout). Le principal cas d'utilisation est destiné aux clients de cloud privé qui disposent de proxys d'API dont l'exécution prend plus de temps. Par exemple, supposons que vous ayez besoin que des proxys spécifiques dépassent le délai au bout de trois minutes. Vous pouvez utiliser une nouvelle propriété api.timeout dans la configuration d'un proxy d'API. Voici comment procéder avec l'exemple de trois minutes :
- Commencez par configurer l'équilibreur de charge, le routeur et le processeur de messages pour qu'ils dépassent le délai au bout de trois minutes.
- Configurez ensuite les proxys concernés pour qu'ils dépassent le délai au bout de trois minutes. Spécifiez la valeur en millisecondes. Exemple :
<ProxyEndpoint name="default"> <HTTPProxyConnection> <BasePath>/v1/weather</BasePath> <Properties> <!-- api.timeout is in milliseconeds --> <Property name="api.timeout">180000</Property> </Properties> ... - Notez toutefois que l'augmentation des délais d'inactivité du système peut entraîner des problèmes de performances, car tous les proxys sans paramètre api.timeout utilisent les nouveaux délais d'inactivité plus élevés de l'équilibreur de charge, du routeur et du processeur de messages. Configurez donc d'autres proxys d'API qui ne nécessitent pas de délais d'inactivité plus longs afin d'utiliser des délais d'inactivité plus courts. Par exemple, la commande suivante définit le délai d'inactivité d'un proxy d'API au bout d'une minute :
<Property name="api.timeout">60000</Property>
Les clients Cloud, qui ne peuvent pas modifier les délais d'inactivité Edge, peuvent également configurer un délai d'inactivité du proxy d'API, tant que ce délai est inférieur au délai d'inactivité du processeur de messages Edge standard de 57 secondes.
Vous ne pouvez pas remplir la valeur avec une variable. Cette propriété est décrite dans la documentation de référence sur les propriétés des points de terminaison. (APIRT-1778)
Règle TLS/SSL pour la journalisation des messages
<KeyStore> et <TrustStore> peuvent être définis dans la configuration SSLInfo de la règle de journalisation des messages, ce qui permet d'utiliser TLS/SSL unidirectionnel et bidirectionnel avec un service de journalisation. Vous configurez SSLInfo dans la règle Message Logging de la même manière que dans un
TargetEndpoint de proxy. Toutefois, le protocole TLS/SSL de la journalisation des messages n'est compatible qu'avec le protocole TCP.
(APIRT-1858)
Bugs résolus
Les bugs suivants sont résolus dans cette version. Cette liste s'adresse principalement aux utilisateurs qui veulent vérifier si leurs demandes d'assistance ont été corrigées. Elle n'est pas conçue pour fournir des informations détaillées à tous les utilisateurs.
| ID du problème | Description |
|---|---|
| SECENG-609 | Les appels d'exécution n'échouent pas lors de la suppression du truststore associé ou lorsque le certificat valide du truststore est supprimé. |
| MGMT-3404 | L'affichage/la récupération des journaux Node.js et le déploiement des proxys sont très lents |
| MGMT-3400 | L'appel à l'API de gestion /userroles échoue si le nom de l'utilisateur qui effectue l'appel contient un signe "+". |
| MGMT-3368 | java.lang.ArrayIndexOutOfBoundsException: 1, lors de l'importation d'un bundle de proxy d'API contenant un répertoire resources/node/resources |
| MGMT-3364 | OAuthV2 : vérification de redirect_uri |
| MGMT-3319 | L'affichage des entrées d'un coffre-fort contenant une entrée avec une valeur nulle ne fonctionne pas pour les organisations (CPS et non CPS) |
| MGMT-3226 | Les requêtes au niveau de l'organisation/de l'environnement ne doivent pas extraire toutes les données, ce qui entraînerait l'échec de l'API. La version 160302 comportait un bug qui entraînait l'échec de la liste des ressources au niveau de l'organisation/de l'environnement si la taille cumulée des ressources dépassait 16 Mo. Ce correctif résout ce problème. |
| AXAPP-2429 | L'API Analytics utilisant response_status_code renvoie une erreur d'accès aux données |
| AXAPP-2386 | Corriger le contenu vide des rapports quotidiens par e-mail dans Analytics |
| AXAPP-2347 | Je ne reçois pas les e-mails récapitulatifs quotidiens sur les données analytiques |
| APIRT-3141 | Les appels Java échouent lors de l'appel de new ExecutionResult() , car le constructeur a été rendu privé. |
| APIRT-3140 | La règle ServiceCallout ne fonctionne pas dans les appels d'API HEAD |
| APIRT-3131 | Le champ "createdBy" est incorrect pour un proxy d'API lorsque la monétisation est utilisée avec un fournisseur d'authentification externe |
| APIRT-3121 | La modification apportée au fichier de ressources de l'organisation n'est pas efficace à 100 % |
| APIRT-3117 | Le MP a atteint 100 % d'utilisation du processeur et a cessé de diffuser du trafic |
| APIRT-3016 | Erreurs "Délai d'appel expiré" du routeur lors des déploiements |
| APIRT-2975 | Échec de l'importation du bundle de certificats |
| APIRT-2955 | Impossible de masquer certains attributs des données de réponse JSON pour l'en-tête Content-Type 'application/json+fhir' conforme à FHIR |
| APIRT-2946 | La règle OAuthV2-RefreshToken n'affiche pas les attributs même si la valeur "display" est définie sur "false" |
| APIRT-2908 | L'application de TLS1.2 pour les appels d'API internes est requise après la mise à jour de TLS1.2 sur l'hôte virtuel. |
| APIRT-2901 | Les réponses compressées au format Gzip renvoyées depuis le cache sont doublement compressées |
| APIRT-2873 | Les MP génèrent une exception NullPointerException liée à VerifyAPIKey après la suppression de produits/développeurs/proxies. |
| APIRT-2871 | Règles IOIntensive apparaissant deux fois dans Trace |
| APIRT-2825 | Erreur grammaticale dans la réponse d'erreur du jeton d'accès |
| APIRT-2750 | Nombre élevé d'échecs de trafic dans une organisation spécifique |
| APIRT-2685 | Le trafic ne peut pas transiter en raison d'une erreur inconnue. |
| APIRT-2647 | Erreur "Le flux d'entrée sous-jacent a renvoyé zéro octet" avec nonprod/dev |
| APIRT-2630 | Problèmes intermittents lors de la tentative de lecture de la valeur à partir du cache |
| APIRT-2620 | Pool de threads distinct pour certaines étapes bloquantes |
| APIRT-2610 | java.lang.ClassCastException avec la règle Response Cache |
| APIRT-2608 | Erreur d'analyse des en-têtes "Last-Modified" dans les règles de mise en cache des réponses |
| APIRT-2605 | Les variables"organization" et "environment" ne doivent pas pouvoir être écrasées par des règles. |
| APIRT-2566 | La règle OAuthV2 renvoie un en-tête WWW-Authenticate mal formé |
| APIRT-2491 | Échec de la mise à jour de TargetServer en raison du délai avant expiration du RPC entre la gestion et mps |
| APIRT-2386 | Un champ d'application de chaîne vide est créé dans un produit d'API avec des champs d'application OAuth autorisés vides |
| APIRT-2383 | Les règles de transformation XSL ne semblent enregistrer aucune donnée en cas d'erreur. |
| APIRT-2364 | Les variables de flux d'erreur OAuth ne sont pas mises à jour en cas d'erreur |
| APIRT-2216 | Événements envoyés par le serveur : problèmes liés au flux d'événements en production |
| APIRT-2079 | L'appel cURL DEBUG ne s'arrête pas après l'expiration du délai avant expiration pour la session créée. |
| APIRT-1495 | La protection contre les menaces XML ne détecte pas le type de contenu FHIR |
| APIRT-347 | La règle XSL n'est pas correctement validée lors de l'importation (n'attribue pas de résultats aux variables de sortie comme indiqué dans la documentation). |