Вы просматриваете документацию Apigee Edge .
Перейти к документации Apigee X. info
Во вторник, 30 августа 2016 года, мы выпустили новую версию Apigee Edge для публичного облака.
Новые функции и обновления
Ниже перечислены новые функции и обновления в этом выпуске.
Полезные данные JSON в назначении сообщения и вызове ошибки
Благодаря этому улучшению не требуется никаких обходных путей для обеспечения правильного форматирования JSON-сообщений, а переменные можно указывать с помощью фигурных скобок, не создавая недействительный JSON. Например, следующий код вставляет значение message.content в JSON-сообщение:
<Payload contentType="application/json">{"message" : "{message.content}"}</Payload>
Если вы использовали обходной путь, ваш код продолжит работать как есть. Вы также можете использовать variablePrefix и variableSuffix вместо фигурных скобок для обозначения переменных.
См. элемент <Set><Payload> в справочных документах по политике назначения сообщений и политике вызова сбоя . (APIRT-1160)
Улучшения политики преобразования XML в JSON
Политика преобразования XML в JSON расширена следующими возможностями. Вы можете настроить политику следующим образом:
- Обрабатывать некоторые элементы XML как массивы во время преобразования, помещая значения в квадратные скобки '[ ]' в документе JSON.
- Удалить или исключить уровни иерархии XML-документа в конечном документе JSON.
Для получения дополнительной информации см. Политику преобразования XML в JSON (APIRT-1144).
Несколько подстановочных знаков в путях ресурсов продукта API
При определении путей к ресурсам в API Product можно использовать подстановочные знаки в нескольких местах пути к ресурсам. Например, /team/*/invoices/** допускает вызовы API с любым значением после /team и любыми путями к ресурсам после invoices/ . Допустимым URI для вызова API будет proxyBasePath/team/finance/invoices/company/a .
Если после этого релиза ваши существующие пути к ресурсам API-продукта перестанут работать должным образом, задайте следующее свойство в вашей организации, чтобы вернуться к предыдущему поведению: features.enableStandardWildCardMatchForAPIProductResources = true
(МГМТ-3273)
Криптофункции в JavaScript
Доступен новый набор высокопроизводительных crypto функций JavaScript для создания, получения и обновления следующих has-объектов: MD5, SHA-1, SHA256, SHA512. Криптографический объект также позволяет получать дату в различных форматах. Подробнее см. в разделе «Объектная модель JavaScript » (APIRT-2886).
Проверка версии JAR-файла Java Callout
При загрузке ресурса Java JAR на прокси-сервер API возвращается код состояния HTTP 400 (вместо 500), если версия ресурса Java несовместима с поддерживаемой Edge версией Java, указанной в разделе «Поддерживаемое программное обеспечение и поддерживаемые версии» . (MGMT-3420)
Проверка ресурсов прокси-API
Если у вас есть файлы ресурсов прокси-API (например, JAR-файлы JavaScript или Java), хранящиеся в среде или организации, фреймворк валидации больше не требует включения этих ресурсов на уровне прокси-API в пакет прокси для импорта и прохождения валидации. Валидация ресурсов теперь выполняется во время развертывания, а не во время импорта. (MGMT-1430)
Настройте тайм-аут для отдельных API-прокси
Вы можете настроить прокси API на тайм-аут по истечении заданного времени (со статусом тайм-аута шлюза 504). Основной вариант использования — клиенты частного облака, у которых прокси API требуют больше времени для выполнения. Например, вам нужно, чтобы определенные прокси-серверы работали по тайм-ауту 3 минуты. Вы можете использовать новое свойство api.timeout в конфигурации прокси API. Вот как это можно сделать в примере с 3 минутами:
- Во-первых, обязательно настройте балансировщик нагрузки, маршрутизатор и обработчик сообщений на тайм-аут через 3 минуты.
- Затем настройте соответствующие прокси-серверы на тайм-аут в 3 минуты. Укажите значение в миллисекундах. Например:
<ProxyEndpoint name="default"> <HTTPProxyConnection> <BasePath>/v1/weather</BasePath> <Properties> <!-- api.timeout is in milliseconeds --> <Property name="api.timeout">180000</Property> </Properties> ... - Однако обратите внимание, что увеличение системных тайм-аутов может привести к проблемам с производительностью, поскольку все прокси без настройки api.timeout используют новые, более высокие тайм-ауты балансировщика нагрузки, маршрутизатора и обработчика сообщений. Поэтому настройте другие API-прокси, которым не требуются более длительные тайм-ауты, на использование более низких тайм-аутов. Например, следующий код устанавливает для API-прокси тайм-аут через 1 минуту:
<Property name="api.timeout">60000</Property>
Клиенты облачных сервисов, которые не могут изменять тайм-ауты Edge, также могут настроить тайм-аут прокси-API, если он короче стандартного тайм-аута процессора сообщений Edge, составляющего 57 секунд.
Значение нельзя заполнить переменной. Это свойство описано в справочнике свойств конечной точки (APIRT-1778).
Политика регистрации сообщений TLS/SSL
Параметры <KeyStore> и <TrustStore> можно задать в конфигурации SSLInfo в политике ведения журнала сообщений , что позволяет использовать одно- и двусторонний протокол TLS/SSL с ведением журнала. Настройка SSLInfo в политике ведения журнала сообщений выполняется так же, как и в целевой конечной точке прокси-сервера. Однако ведение журнала сообщений TLS/SSL поддерживает только протокол TCP. (APIRT-1858)
Исправлены ошибки
В этом выпуске исправлены следующие ошибки. Этот список предназначен в первую очередь для пользователей, проверяющих, были ли исправлены их обращения в службу поддержки. Он не предназначен для предоставления подробной информации всем пользователям.
| Идентификатор выпуска | Описание |
|---|---|
| SECENG-609 | Вызовы времени выполнения не приводят к сбою при удалении связанного хранилища доверенных сертификатов или при удалении действительного сертификата в хранилище доверенных сертификатов. |
| МГМТ-3404 | Просмотр/извлечение журналов Node.js и развертывание прокси-серверов выполняются очень медленно. |
| МГМТ-3400 | Вызов API управления /userroles завершается ошибкой, если в имени пользователя, выполняющего вызов, есть знак «+». |
| МГМТ-3368 | java.lang.ArrayIndexOutOfBoundsException: 1 при импорте пакета API Proxy, содержащего каталог resources/node/resources |
| МГМТ-3364 | OAuthV2: проверка redirect_uri |
| МГМТ-3319 | Список записей в хранилище, в одной из которых есть нулевое значение, не работает для организаций (CPS и не-CPS) |
| МГМТ-3226 | Запросы на уровне организации/среды не должны извлекать все данные, приводя к сбою API. В версии 160302 была ошибка, из-за которой вывод списка ресурсов на уровне организации/среды завершался сбоем, если совокупный размер ресурсов превышал 16 МБ. Данное исправление устраняет эту ошибку. |
| AXAPP-2429 | Аналитический API, использующий response_status_code, возвращает ошибку доступа к данным |
| AXAPP-2386 | Исправление пустого содержимого отчетов в ежедневных аналитических отчетах по электронной почте |
| AXAPP-2347 | Не получаю ежедневные аналитические сводки по электронной почте |
| APIRT-3141 | Вызовы Java Callouts завершаются ошибкой при вызове new ExecutionResult(), поскольку конструктор был сделан закрытым. |
| APIRT-3140 | Политика ServiceCallout не работает в вызовах API HEAD |
| APIRT-3131 | Неправильное значение createdBy отображается для API Proxy при использовании монетизации с внешним поставщиком аутентификации. |
| APIRT-3121 | Внесенные изменения в файл ресурсов организации неэффективны на 100%. |
| APIRT-3117 | MP достиг 100% загрузки ЦП и прекратил обслуживание трафика |
| APIRT-3016 | Ошибки маршрутизатора «Время ожидания вызова истекло» при развертывании |
| APIRT-2975 | Ошибка загрузки пакета сертификатов |
| APIRT-2955 | Невозможно замаскировать определенные атрибуты данных ответа JSON для заголовка Content-Type «application/json+fhir» жалобы FHIR. |
| APIRT-2946 | Политика OAuthV2-RefreshToken не скрывает атрибуты, хотя для параметра display задано значение false |
| APIRT-2908 | После обновления TLS1.2 на виртуальном хосте требуется принудительное использование TLS1.2 для внутренних вызовов API. |
| APIRT-2901 | Сжатые в Gzip ответы, возвращаемые из кэша, подвергаются двойному сжатию. |
| APIRT-2873 | MP выдают исключение NullPointerException, связанное с VerifyAPIKey, после удаления продуктов/разработчиков/прокси. |
| APIRT-2871 | Политики IOIntensive дважды появляются в Trace |
| APIRT-2825 | Грамматическая ошибка в ответе об ошибке accesstoken |
| APIRT-2750 | В определенных организациях наблюдаются высокие сбои в работе транспорта |
| APIRT-2685 | Трафик не может проходить из-за неизвестной ошибки. |
| APIRT-2647 | Ошибка «Базовый входной поток вернул ноль байтов» с nonprod/dev |
| APIRT-2630 | Периодически возникающие проблемы при попытке чтения значения из кэша |
| APIRT-2620 | Отдельный пул потоков для некоторых блокирующих шагов |
| APIRT-2610 | java.lang.ClassCastException с политикой кэширования ответов |
| APIRT-2608 | Ошибка анализа заголовков Last-Modified в политиках кэширования ответов |
| APIRT-2605 | Переменные «организация» и «среда» не должны перезаписываться политиками. |
| APIRT-2566 | Политика OAuthV2 возвращает некорректный заголовок WWW-Authenticate |
| APIRT-2491 | Обновление TargetServer не удалось из-за тайм-аута RPC между управлением и mps |
| APIRT-2386 | Пустая строковая область создается в API-продукте с пустыми разрешенными областями OAuth. |
| APIRT-2383 | Политики преобразования XSL, похоже, не регистрируют никаких данных при возникновении ошибки. |
| APIRT-2364 | Переменные потока ошибок OAuth не обновляются при возникновении ошибки |
| APIRT-2216 | События, отправленные сервером, — поток событий, в котором возникли проблемы в рабочей среде |
| APIRT-2079 | Вызов отладки cURL не останавливается после истечения времени ожидания созданного сеанса |
| APIRT-1495 | Защита от угроз XML не обнаруживает fhir Content-Type |
| APIRT-347 | Политика XSL не проверяется должным образом при импорте (не назначает результаты выходным переменным, как описано в документации) |