Wyświetlasz dokumentację Apigee Edge.
Przejdź do
dokumentacji Apigee X. info
We wtorek 30 sierpnia 2016 r. udostępniliśmy nową wersję Apigee Edge dla chmury publicznej.
Nowe funkcje i aktualizacje
Poniżej znajdziesz nowe funkcje i aktualizacje w tej wersji.
Ładunki JSON w zasadach Assign Message i Raise Fault
Dzięki temu ulepszeniu nie trzeba stosować żadnych 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ć wartości variablePrefix i variableSuffix, aby wskazywać zmienne.
Więcej informacji znajdziesz w dokumentacji referencyjnej dotyczącej elementu <Set><Payload> w zasadzie Assign Message i Raise Fault. (APIRT-1160)
Ulepszenia zasady XML to JSON
Zasada XML to JSON została ulepszona o te funkcje: Możesz skonfigurować zasadę tak, aby:
- traktować niektóre elementy XML jako tablice podczas konwersji, co powoduje umieszczenie wartości w nawiasach kwadratowych „[ ]” w dokumencie JSON;
- usuwać poziomy hierarchii dokumentu XML w końcowym dokumencie JSON.
Więcej informacji znajdziesz w artykule XML to JSON policy. (APIRT-1144)
Wiele symboli wieloznacznych w ścieżkach zasobów produktu API
Podczas definiowania ścieżek zasobów w produkcie API możesz umieszczać symbole wieloznaczne w wielu miejscach a
ścieżki zasobu. Na przykład /team/*/invoices/** umożliwia wywoływanie interfejsu API z dowolną
wartością po /team i dowolnymi ścieżkami zasobów
po invoices/. Dozwolony URI w wywołaniu interfejsu API byłby
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 wydajnych funkcji JavaScriptu crypto do tworzenia, pobierania i aktualizowania tych obiektów skrótu: MD5, SHA-1, SHA256, SHA512.
Obiekt crypto umożliwia też pobieranie
daty w różnych formatach. Więcej informacji znajdziesz w artykule Model obiektów JavaScript.
(APIRT-2886)
Sprawdzanie wersji pliku JAR wywołania Java
Jeśli wersja zasobu Java jest niezgodna z obsługiwaną przez Edge wersją Javy, która jest wymieniona w artykule Obsługiwane oprogramowanie i obsługiwane wersje, podczas przesyłania zasobu JAR Java do proxy interfejsu API zwracany jest kod stanu HTTP 400 (zamiast 500). (MGMT-3420)
Weryfikacja zasobów proxy interfejsu API
Jeśli masz pliki zasobów proxy interfejsu API (np. pliki JAR JavaScriptu lub Javy) przechowywane w zakresie środowiska lub organizacji, framework weryfikacji nie wymaga już, aby te zasoby były też uwzględniane na poziomie proxy interfejsu API w pakiecie proxy, aby import przeszedł weryfikację. Weryfikacja zasobów odbywa się teraz w czasie wdrażania, a nie importu. (MGMT-1430)
Konfigurowanie limitu czasu dla poszczególnych proxy interfejsu API
Możesz skonfigurować proxy interfejsu API tak, aby po określonym czasie przekraczały limit czasu (ze stanem 504 Gateway Timeout
). Głównym przypadkiem użycia jest sytuacja, gdy klienci Private Cloud mają proxy interfejsu API, których wykonanie trwa
dłużej. Załóżmy na przykład, że chcesz, aby określone proxy przekraczały limit czasu po 3 minutach. W konfiguracji proxy interfejsu API możesz
użyć nowej właściwości api.timeout. Oto jak to zrobić w przypadku 3-minutowego limitu czasu:
- Najpierw skonfiguruj moduł równoważenia obciążenia, router i procesor wiadomości tak, aby przekraczały limit czasu po 3 minutach.
- Następnie skonfiguruj odpowiednie proxy tak, 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 proxy bez ustawienia api.timeout będą używać nowych, dłuższych limitów czasu modułu równoważenia obciążenia, routera i
procesora wiadomości. Skonfiguruj więc inne proxy interfejsu API, które nie wymagają dłuższych limitów czasu
tak aby używały krótszych limitów czasu. Na przykład ten kod ustawia limit czasu 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 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 referencyjnej właściwości punktu końcowego. (APIRT-1778)
TLS/SSL w zasadzie Message Logging
<KeyStore> i <TrustStore> można ustawić w konfiguracji SSLInfo w zasadzie Message Logging policy, co umożliwia jednokierunkowe i dwukierunkowe połączenie TLS/SSL z usługą logowania. SSLInfo w zasadzie Message Logging konfiguruje się tak samo jak w przypadku
TargetEndpoint proxy. Jednak TLS/SSL w zasadzie Message Logging obsługuje tylko protokół TCP.
(APIRT-1858)
Naprawione błędy
W tej wersji naprawiono 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 zawiera ona szczegółowych informacji dla wszystkich użytkowników.
| Identyfikator problemu | Opis |
|---|---|
| SECENG-609 | Wywołania w czasie działania nie kończą się niepowodzeniem podczas usuwania powiązanego magazynu zaufanych certyfikatów ani gdy usunięty zostanie prawidłowy certyfikat w magazynie zaufanych certyfikatów |
| MGMT-3404 | Wyświetlanie i pobieranie logów Node.js oraz wdrażanie proxy trwa bardzo długo |
| MGMT-3400 | Wywołanie interfejsu /userroles API zarządzania kończy się niepowodzeniem, jeśli nazwa użytkownika wywołującego zawiera znak "+" |
| MGMT-3368 | java.lang.ArrayIndexOutOfBoundsException: 1 podczas importowania pakietu proxy interfejsu API który zawiera katalog resources/node/resources |
| MGMT-3364 | OAuthV2: sprawdzanie redirect_uri |
| MGMT-3319 | Wyświetlanie listy wpisów w skarbcu, który zawiera wartość null w jednym z wpisów, nie działa w przypadku organizacji (CPS i non-CPS) |
| MGMT-3226 | Wykonywanie zapytań na poziomie organizacji lub środowiska nie powinno powodować pobierania wszystkich danych, co powoduje awarię interfejsu API
W wersji 160302 występował błąd, który powodował, że wyświetlanie listy zasobów na poziomie organizacji lub środowiska kończyło się niepowodzeniem, jeśli łączny rozmiar zasobów przekraczał 16 MB. Ta poprawka rozwiązuje ten problem. |
| AXAPP-2429 | Interfejs Analytics API używający response_status_code zwraca błąd dostępu do danych error |
| AXAPP-2386 | Naprawianie pustej treści raportów w codziennych raportach e-mailowych Analytics |
| AXAPP-2347 | Nie otrzymuję codziennych e-maili z podsumowaniem danych Analytics |
| APIRT-3141 | Wywołania Java kończą się niepowodzeniem podczas wywoływania new ExecutionResult() , ponieważ konstruktor został ustawiony jako prywatny |
| APIRT-3140 | Zasada ServiceCallout nie działa w wywołaniach interfejsu API HEAD |
| APIRT-3131 | W przypadku korzystania z monetyzacji z zewnętrznym dostawcą uwierzytelniania w przypadku proxy interfejsu API wyświetlana jest nieprawidłowa wartość createdBy |
| APIRT-3121 | Zmiana pliku zasobu organizacji nie jest w 100% skuteczna |
| APIRT-3117 | Procesor wiadomości osiągnął 100% wykorzystania procesora i przestał obsługiwać ruch |
| APIRT-3016 | Błędy „Przekroczono limit czasu połączenia” routera podczas wdrażania |
| 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 zgodnego z FHIR „application/json+fhir” |
| APIRT-2946 | Zasada OAuthV2-RefreshToken nie ukrywa atrybutów, mimo że wyświetlanie jest ustawione na false |
| APIRT-2908 | Po aktualizacji protokołu TLS1.2 w przypadku hosta wirtualnego wymagane jest wymuszanie protokołu TLS1.2 w przypadku wewnętrznego wywołania interfejsu API |
| APIRT-2901 | Odpowiedzi skompresowane za pomocą gzip zwracane z pamięci podręcznej są kompresowane podwójnie |
| APIRT-2873 | Po usunięciu produktów, deweloperów lub proxy procesory wiadomości zgłaszają wyjątek NullPointerException związany z zasadą VerifyAPIKey |
| APIRT-2871 | Zasady IOIntensive pojawiają się 2 razy w śledzeniu |
| APIRT-2825 | Błąd gramatyczny w odpowiedzi na błąd tokena dostępu |
| APIRT-2750 | W określonej organizacji występuje duża liczba błędów ruchu |
| APIRT-2685 | Ruch nie może przepływać z powodu nieznanego błędu |
| APIRT-2647 | Błąd „Underlying input stream returned zero bytes” (Podstawowy strumień wejściowy zwrócił zero bajtów) w przypadku środowiska nonprod/dev |
| APIRT-2630 | Sporadyczne problemy podczas próby odczytania wartości z pamięci podręcznej |
| APIRT-2620 | Oddzielna pula wątków w przypadku niektórych kroków blokujących |
| APIRT-2610 | java.lang.ClassCastException w przypadku zasady Response Cache |
| APIRT-2608 | Błąd analizowania nagłówków Last-Modified w zasadach Response Cache |
| APIRT-2605 | Nie należy zezwalać na nadpisywanie zmiennych „organization” i „environment” za pomocą zasad |
| APIRT-2566 | Zasada OAuthV2 zwraca nieprawidłowy nagłówek WWW-Authenticate |
| APIRT-2491 | Nie udało się zaktualizować serwera docelowego z powodu przekroczenia limitu czasu RPC między zarządzaniem a procesorami wiadomości |
| APIRT-2386 | W produkcie API z pustymi dozwolonymi zakresami OAuth tworzony jest pusty zakres 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 DEBUG nie zatrzymuje się po upływie limitu czasu utworzonej sesji |
| APIRT-1495 | Ochrona przed zagrożeniami XML nie wykrywa typu treści fhir |
| APIRT-347 | Zasada XSL nie jest prawidłowo weryfikowana podczas importowania (nie przypisuje wyników do zmiennych wyjściowych zgodnie z dokumentacją) |