Wyświetlasz dokumentację Apigee Edge.
Zapoznaj się z 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 przypisywania i zgłaszania błędu
Dzięki temu ulepszeniu nie są potrzebne żadne obejścia, 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 w ten sposób:
- 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 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 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 o wysokiej wydajności crypto do tworzenia, pobierania i aktualizowania 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 obsługiwaną przez Edge wersją języka Java, która jest wymieniona w sekcji Obsługiwane oprogramowanie i obsługiwane wersje. (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 osiągały limit czasu po 3 minutach. W konfiguracji serwera proxy 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. Podaj 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. Skonfiguruj inne proxy interfejsów API, które nie wymagają dłuższych limitów czasu oczekiwania, tak aby korzystały z 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 Cloud, 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 dokumentacji właściwości punktu końcowego. (APIRT-1778)
Zasady TLS/SSL dotyczące rejestrowania wiadomoś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: weryfikacja redirect_uri |
| MGMT-3319 | Wyświetlanie wpisów na liście w skarbcu, który zawiera wartość null w jednym z wpisów, 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łędy 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ę e-maili z dziennym podsumowaniem danych analitycznych |
| APIRT-3141 | Wywołania Java Callouts kończą się niepowodzeniem podczas wywoływania 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 atrybut createdBy w przypadku serwera proxy interfejsu API, gdy do zarabiania używany jest zewnętrzny dostawca 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 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 dla nagłówka Content-Type zgodnego z FHIR „application/json+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 wymuszanie 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 Message Processor zgłaszają wyjątek NullPointerException związany z zasadą VerifyAPIKey po usunięciu produktów/deweloperó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 | Wysoki odsetek nieudanych prób połączenia w określonej organizacji |
| APIRT-2685 | Nie można przekierowywać ruchu z powodu nieznanego błędu |
| APIRT-2647 | Błąd „Podstawowy strumień wejściowy zwrócił zero bajtów” w środowisku nieprodukcyjnym/deweloperskim |
| 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 w przypadku zasady pamięci podręcznej odpowiedzi |
| APIRT-2608 | Błąd analizowania nagłówków Last-Modified w zasadach pamięci podręcznej odpowiedzi |
| APIRT-2605 | Zmienne „organization” i „environment” nie powinny być nadpisywane przez zasady |
| APIRT-2566 | Zasady OAuthV2 zwracają 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 usłudze API z pustym polem Dozwolone zakresy OAuth tworzony jest zakres pustego ciągu znaków |
| 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 cURL w trybie DEBUG nie zatrzymuje się po upływie 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ą). |