Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. info
We wtorek 30 sierpnia 2016 r. udostępniliśmy nową wersję Apigee Edge na chmurę publiczną.
Nowe funkcje i aktualizacje
Oto nowe funkcje i aktualizacje wprowadzone w tej wersji.
Ładunki JSON w komunikatach Assign Message i Raise Fault
Dzięki temu ulepszeniu nie trzeba stosować obejść, aby zapewnić prawidłowe formatowanie wiadomości JSON, a zmienne można określać za pomocą nawiasów klamrowych bez tworzenia nieprawidłowego kodu JSON. Na przykład poniższy kod wstawia wartość message.content do wiadomości JSON:
<Payload contentType="application/json">{"message" : "{message.content}"}</Payload>
Jeśli używasz obejścia, Twój kod będzie nadal działać bez zmian. Zamiast nawiasów klamrowych możesz też używać zmiennych variablePrefix i variableSuffix, aby wskazywać zmienne.
Zobacz element <Set><Payload> w dokumentacji referencyjnej zasad przypisywania wiadomości i zasad zgłaszania błędu. (APIRT-1160)
Ulepszenia zasad XML do JSON
Zasady XML do JSON zostały rozszerzone o te funkcje: Możesz skonfigurować zasady tak, aby:
- Traktuj niektóre elementy XML jako tablice podczas konwersji, co powoduje umieszczenie wartości w nawiasach kwadratowych „[ ]” w dokumencie JSON.
- Usuń lub wyeliminuj poziomy hierarchii dokumentu XML w końcowym dokumencie JSON.
Więcej informacji znajdziesz w artykule Zasady dotyczące konwersji XML na JSON. (APIRT-1144)
Wiele symboli wieloznacznych w ścieżkach zasobów produktu API
Podczas definiowania ścieżek zasobów w produkcie interfejsu API możesz uwzględnić symbole wieloznaczne w wielu miejscach ścieżki zasobu. Na przykład /team/*/invoices/** zezwala na wywołania interfejsu API z dowolną wartością po /team i dowolnymi ścieżkami zasobów po invoices/. Dozwolony identyfikator URI w wywołaniu interfejsu API to proxyBasePath/team/finance/invoices/company/a.
Jeśli po tej wersji ścieżki zasobów istniejącego produktu API przestaną działać zgodnie z oczekiwaniami, ustaw w swojej organizacji tę właściwość, aby przywrócić poprzednie działanie: features.enableStandardWildCardMatchForAPIProductResources = true
(MGMT-3273)
Funkcje kryptograficzne w JavaScript
Dostępny jest nowy zestaw funkcji JavaScriptu crypto o wysokiej wydajności, które umożliwiają tworzenie, pobieranie i aktualizowanie tych obiektów skrótu: MD5, SHA-1, SHA256, SHA512.
Obiekt crypto umożliwia też uzyskanie daty w różnych formatach. Więcej informacji znajdziesz w modelu obiektu JavaScript.
(APIRT-2886)
Sprawdzanie wersji pliku JAR wywołania Javy
Podczas przesyłania zasobu JAR w języku Java do serwera proxy interfejsu API zwracany jest kod stanu HTTP 400 (zamiast 500), jeśli wersja zasobu Java jest niezgodna z wersją Javy obsługiwaną przez Edge, która jest wymieniona w obsługiwanym oprogramowaniu i obsługiwanych wersjach. (MGMT-3420)
Weryfikacja zasobów proxy interfejsu API
Jeśli pliki zasobów serwera proxy interfejsu API (takie jak pliki JAR w JavaScript lub Java) są przechowywane w zakresie środowiska lub organizacji, platforma weryfikacyjna nie wymaga już, aby te zasoby były też uwzględniane na poziomie serwera proxy interfejsu API w pakiecie serwera proxy na potrzeby importu, aby przejść weryfikację. Weryfikacja zasobów odbywa się teraz w momencie wdrażania, a nie importowania. (MGMT-1430)
Konfigurowanie limitu czasu dla poszczególnych proxy interfejsu API
Możesz skonfigurować proxy interfejsu API tak, aby po określonym czasie wygasł (ze stanem 504 – przekroczenie limitu czasu bramy). Głównym przypadkiem użycia jest sytuacja, w której klienci chmury prywatnej mają serwery proxy interfejsu API, których wykonanie trwa dłużej. Załóżmy na przykład, że chcesz, aby określone serwery proxy wygasły po 3 minutach. W konfiguracji proxy interfejsu API możesz użyć nowej właściwości api.timeout. Oto jak to zrobić na przykładzie 3-minutowego filmu:
- Najpierw skonfiguruj system równoważenia obciążenia, router i procesor wiadomości tak, aby po 3 minutach przekraczały limit czasu.
- Następnie skonfiguruj odpowiednie serwery proxy, aby przekraczały limit czasu po 3 minutach. Określ wartość w milisekundach. Na przykład:
<ProxyEndpoint name="default"> <HTTPProxyConnection> <BasePath>/v1/weather</BasePath> <Properties> <!-- api.timeout is in milliseconeds --> <Property name="api.timeout">180000</Property> </Properties> ... - Pamiętaj jednak, że zwiększenie limitów czasu systemu może spowodować problemy z wydajnością, ponieważ wszystkie serwery proxy bez ustawienia api.timeout używają nowych, wyższych limitów czasu modułu równoważenia obciążenia, routera i procesora wiadomości. Dlatego skonfiguruj inne proxy interfejsów API, które nie wymagają dłuższych limitów czasu oczekiwania, tak aby używały krótszych limitów. Na przykład ten kod ustawia limit czasu dla serwera proxy interfejsu API na 1 minutę:
<Property name="api.timeout">60000</Property>
Klienci korzystający z chmury, którzy nie mogą modyfikować limitów czasu Edge, mogą też skonfigurować limit czasu serwera proxy interfejsu API, o ile jest on krótszy niż standardowy limit czasu procesora wiadomości Edge wynoszący 57 sekund.
Nie możesz wypełnić wartości zmienną. Ta właściwość jest opisana w tym artykule. (APIRT-1778)
TLS/SSL do rejestrowania wiadomości Zasady
Wartości <KeyStore> i <TrustStore> można ustawić w konfiguracji SSLInfo w zasadach rejestrowania wiadomości, co umożliwia dwukierunkowe i jednokierunkowe połączenia TLS/SSL z usługą rejestrowania. Element SSLInfo w zasadach logowania wiadomości konfiguruje się tak samo jak w
TargetEndpoint serwera proxy. Jednak TLS/SSL rejestrowania wiadomości obsługuje tylko protokół TCP.
(APIRT-1858)
Usunięte błędy
W tej wersji naprawiliśmy te błędy: Ta lista jest przeznaczona głównie dla użytkowników, którzy chcą sprawdzić, czy ich zgłoszenia zostały rozwiązane. Nie jest on przeznaczony do dostarczania szczegółowych informacji wszystkim użytkownikom.
| Identyfikator problemu | Opis |
|---|---|
| SECENG-609 | Wywołania w czasie działania nie kończą się niepowodzeniem podczas usuwania powiązanego magazynu zaufanych certyfikatów lub gdy z magazynu zaufanych certyfikatów zostanie usunięty ważny certyfikat |
| MGMT-3404 | Wyświetlanie i pobieranie logów Node.js oraz wdrażanie serwerów proxy jest bardzo powolne |
| MGMT-3400 | Wywołanie interfejsu API zarządzania /userroles kończy się niepowodzeniem, jeśli nazwa użytkownika, który wywołuje interfejs API, zawiera znak „+” |
| MGMT-3368 | java.lang.ArrayIndexOutOfBoundsException: 1 podczas importowania pakietu serwera proxy interfejsu API, który zawiera katalog resources/node/resources |
| MGMT-3364 | OAuthV2: redirect_uri check |
| MGMT-3319 | Wyświetlanie wpisów na liście w skarbcu, który zawiera wpis z wartością null, nie działa w przypadku organizacji (CPS i non-CPS) |
| MGMT-3226 | Zapytania na poziomie organizacji lub środowiska nie powinny pobierać wszystkich danych, co powoduje błąd interfejsu API W wersji 160302 występował błąd, który powodował, że lista zasobów na poziomie organizacji lub środowiska nie działała, jeśli łączny rozmiar zasobów przekraczał 16 MB. Ta poprawka rozwiązuje ten problem. |
| AXAPP-2429 | Interfejs Analytics API zwraca błąd dostępu do danych za pomocą kodu response_status_code |
| AXAPP-2386 | Rozwiązywanie problemu z pustymi raportami w codziennych raportach e-mail Analytics |
| AXAPP-2347 | Nie otrzymuję codziennych e-maili z podsumowaniem danych analitycznych |
| APIRT-3141 | Wywołania Java Callouts kończą się niepowodzeniem podczas wywoływania funkcji new ExecutionResult() , ponieważ konstruktor został oznaczony jako prywatny |
| APIRT-3140 | Zasady ServiceCallout nie działają w wywołaniach interfejsu API HEAD |
| APIRT-3131 | Nieprawidłowy użytkownik utworzenia serwera proxy interfejsu API w przypadku korzystania z zarabiania z zewnętrznym dostawcą uwierzytelniania |
| APIRT-3121 | Zmiana w pliku zasobów organizacji nie jest w 100% skuteczna |
| APIRT-3117 | MP osiągnął 100% wykorzystania procesora i przestał obsługiwać ruch |
| APIRT-3016 | Błędy „Przekroczono limit czasu połączenia” w routerze w przypadku wdrożeń |
| APIRT-2975 | Nie udało się przesłać pakietu certyfikatów |
| APIRT-2955 | Nie można zamaskować niektórych atrybutów danych odpowiedzi JSON w przypadku nagłówka Content-Type „application/json+fhir” zgodnego z FHIR |
| APIRT-2946 | Zasada OAuthV2-RefreshToken nie ukrywa atrybutów, mimo że wyświetlanie jest ustawione na wartość false |
| APIRT-2908 | Po zaktualizowaniu protokołu TLS 1.2 na hoście wirtualnym wymagane jest wymuszenie protokołu TLS 1.2 w przypadku wewnętrznych wywołań interfejsu API |
| APIRT-2901 | Odpowiedzi skompresowane za pomocą gzipa zwracane z pamięci podręcznej są podwójnie skompresowane |
| APIRT-2873 | Moduły przetwarzania komunikatów zgłaszają wyjątek NullPointerException związany z zasadą VerifyAPIKey po usunięciu produktów/programistów/serwerów proxy |
| APIRT-2871 | Zasady IOIntensive pojawiające się w śladzie dwukrotnie |
| APIRT-2825 | Błąd gramatyczny w odpowiedzi na błąd tokena dostępu |
| APIRT-2750 | Wysoka liczba błędów w ruchu w określonej organizacji |
| APIRT-2685 | Nie można przekierowywać ruchu z powodu nieznanego błędu |
| APIRT-2647 | Błąd „Underlying input stream returned zero bytes” w przypadku środowiska nonprod/dev |
| APIRT-2630 | Sporadyczne problemy podczas próby odczytania wartości z pamięci podręcznej |
| APIRT-2620 | Osobna pula wątków dla niektórych kroków blokujących |
| APIRT-2610 | java.lang.ClassCastException z zasadami pamięci podręcznej odpowiedzi |
| APIRT-2608 | Błąd analizowania nagłówków Last-Modified w zasadach pamięci podręcznej odpowiedzi |
| APIRT-2605 | Nie zezwalaj na zastępowanie zmiennych „organization” i „environment” za pomocą zasad |
| APIRT-2566 | Zasada OAuthV2 zwraca nieprawidłowo sformatowany nagłówek WWW-Authenticate |
| APIRT-2491 | Nie udało się zaktualizować serwera docelowego z powodu przekroczenia limitu czasu RPC między zarządzaniem a mps |
| APIRT-2386 | W produkcie API z pustym polem Dozwolone zakresy OAuth tworzony jest zakres pustego ciągu |
| APIRT-2383 | Zasady transformacji XSL nie rejestrują żadnych danych w przypadku błędu |
| APIRT-2364 | Zmienne przepływu błędów OAuth nie są aktualizowane w przypadku błędu |
| APIRT-2216 | Zdarzenia wysyłane przez serwer – strumień zdarzeń ma problemy w środowisku produkcyjnym |
| APIRT-2079 | Wywołanie DEBUG cURL nie zatrzymuje się po upłynięciu limitu czasu utworzonej sesji |
| APIRT-1495 | Ochrona przed zagrożeniami w XML nie wykrywa typu treści fhir |
| APIRT-347 | Zasady XSL nie są prawidłowo weryfikowane podczas importowania (nie przypisują wyników do zmiennych wyjściowych zgodnie z dokumentacją). |