Konfigurowanie przepływów

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

Automatyzacje to podstawowe elementy składowe proxy interfejsu API. Automatyzacje umożliwiają zaprogramowanie działania interfejsu API przez skonfigurowanie kolejności, w jakiej zasady i kod są wykonywane przez proxy interfejsu API.

Ogólne omówienie automatyzacji znajdziesz w artykule Kontrolowanie sposobu wykonywania proxy za pomocą automatyzacji.

Z tego artykułu dowiesz się, jak tworzyć automatyzacje warunkowe i dodawać do nich logikę (zasady) na wysokim poziomie. Tworzenie warunków wymaga większej wiedzy niż ta, którą znajdziesz w tym artykule. Więcej informacji znajdziesz w artykułach Omówienie zmiennych automatyzacji i Warunki ze zmiennymi automatyzacji.

Dołączanie zasad do automatyzacji

Edge zawiera wiele różnych typów predefiniowanych zasad, które służą do wdrażania zabezpieczeń, zarządzania ruchem i manipulowania wiadomościami. Ponadto zasady umożliwiają dodawanie własnego kodu niestandardowego, aby w pełni dostosować przetwarzanie wiadomości.

Na przykład:

  • Dołącz zasadę zabezpieczeń OAuth do PreFlow żądania ProxyEndpoint. Ponieważ PreFlow żądania ProxyEndpoint jest pierwszą automatyzacją w potoku, możesz natychmiast odrzucić żądanie, jeśli narusza ono Twoje zasady bezpieczeństwa.
  • Dołącz zasadę konwersji JSON na XML do PostFlow odpowiedzi TargetEndpoint , aby przekonwertować odpowiedź z formatu JSON na XML.
  • Dołącz zasadę JavaScript do automatyzacji warunkowej ProxyEndpoint , aby wykonać kod JavaScript w celu przetworzenia żądania.

Po utworzeniu automatyzacji warunkowej możesz dołączyć do niej zasadę. Gdy automatyzacja jest wybrana, kliknij ikonę + Krok na diagramie żądania lub odpowiedzi, aby dodać do automatyzacji nową lub istniejącą zasadę.

W menu Nawigator wyróżniony jest przykładowy przepływ warunkowy o nazwie problem. W panelu Przepływ widoczny jest przycisk Krok.

W panelu Dodaj krok zostanie utworzona nowa instancja zasady o typie Quota i nazwie wyświetlanej Quota-2.

Dołączając zasadę do wybranej automatyzacji, konfigurujesz proxy interfejsu API tak, aby egzekwowało zasadę limitu tylko w przypadku żądań wysyłanych do tej kombinacji identyfikatora URI i czasownika automatyzacji. Jeśli na przykład dołączysz zasadę do automatyzacji learn w żądaniu, w widoku kodu edytora proxy zostanie wygenerowany ten kod XML:

<ProxyEndpoint name="default">
...
   <Flow name="issue">
        <Description/>
        <Request>
            <Step>
                <Name>Quota-2</Name>
            </Step>
        </Request>
        <Response/>
        <Condition>(proxy.pathsuffix MatchesPath "/issue/**") and (request.verb = "GET")</Condition>
    </Flow>
... 
</ProxyEndpoint>

W tej konfiguracji, jeśli do proxy interfejsu API przyjdzie żądanie GET z wzorcem URI .../issue/** (/issue/ z dowolną treścią w URI po ostatnim ukośniku), limit zostanie zastosowany do tego wywołania interfejsu API.

Informacje o automatyzacjach warunkowych

Wszystkie zasady dołączone do PreFlow lub PostFlow są zawsze wykonywane. Zasady w automatyzacji warunkowej są jednak wykonywane tylko wtedy, gdy warunek automatyzacji przyjmuje wartość „prawda”.

Podczas przetwarzania żądania i odpowiedzi na segment jest wykonywana tylko 1 automatyzacja warunkowa – pierwsza, której warunek przyjmuje wartość „prawda”. Oznacza to, że możesz mieć 1 automatyzację warunkową wykonywaną w ramach każdego z tych elementów:

  • potoku żądania ProxyEndpoint,
  • potoku żądania TargetEndpoint,
  • potoku odpowiedzi ProxyEndpoint,
  • potoku odpowiedzi TargetEndpoint.

Film: obejrzyj krótki film, aby dowiedzieć się więcej o automatyzacjach warunkowych.

Na przykład ta definicja ProxyEndpoint pokazuje automatyzację warunkową, która jest wykonywana przez ProxyEndpoint w przypadku każdego żądania HTTP GET do proxy interfejsu API:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request/>
    <Response/>
  </PreFlow>   
  <Flows>
    <Flow name="Flow-1">
      <Condition>request.verb="GET"</Condition>
      <Request/>
      <Response/>
    </Flow>
  </Flows>
  <PostFlow>
    <Request/>
    <Response/>
  </PostFlow>
  ...
</ProxyEndpoint>

Zwróć uwagę, że warunek odwołuje się do request.verb zmiennej automatyzacji. Zmienna przepływu to nazwane odwołania, które zawierają informacje o stanie powiązane z transakcją interfejsu API przetwarzaną przez Edge. Edge definiuje wiele zmiennych stanu, do których możesz się odwoływać.

Usługi RESTful to zbiory zasobów interfejsu API. Zasób interfejsu API to fragment ścieżki URI który identyfikuje jednostkę, do której deweloperzy mogą uzyskać dostęp, wywołując Twój interfejs API. Jeśli na przykład Twój backend usługi udostępnia raporty i prognozy pogody, Twój interfejs API może definiować 2 automatyzacje warunkowe, które są mapowane na te zasoby interfejsu API: /reports i /forecasts. Gdy wywołanie interfejsu API zawiera jeden z tych zasobów w adresie URL, warunek przyjmuje wartość „prawda”, a logika dołączona do automatyzacji warunkowej jest wykonywana.

Deweloperzy aplikacji uzyskują dostęp do Twoich zasobów, wysyłając żądania do adresu URL w postaci:

http://myAPIs.myCo.com/weather/reports

lub:

http://myAPIs.myCo.com/weather/forecasts

W proxy interfejsu API możesz zdefiniować automatyzację warunkową, która odpowiada określonemu zasobowi:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request/>
    <Response/>
  </PreFlow>   
  <Flows>
    <Flow name="Flow-1">
      <Condition>(proxy.pathsuffix MatchesPath "/reports")</Condition>
      <Request/>
      <Response/>
    </Flow>
    <Flow name="Flow-2">
      <Condition>(proxy.pathsuffix MatchesPath "/forecasts")</Condition>
      <Request/>
      <Response/>
    </Flow>
  </Flows>
  <PostFlow>
    <Request/>
    <Response/>
  </PostFlow>
  ...
</ProxyEndpoint>

W tym przykładzie odwołujesz się do zmiennej przepływu proxy.pathsuffix, która zawiera sufiks adresu URL używanego do uzyskiwania dostępu do proxy interfejsu API. Następnie możesz dołączyć różne zasady do automatyzacji warunkowej dla każdego zasobu.

Dodawanie automatyzacji warunkowej

W tym krótkim przykładzie skonfigurujesz automatyzację, która będzie wykonywana tylko wtedy, gdy wiadomość żądania jest żądaniem HTTP GET.

Aby dodać automatyzację warunkową, w narzędziu do tworzenia proxy interfejsu API wybierz kartę Programowanie.

Karta Tworzenie w narzędziu do tworzenia serwerów proxy

W wybranym punkcie końcowym kliknij ikonę +.

Przycisk Dodaj przepływ warunkowy

Formularz Nowa automatyzacja warunkowa umożliwia nadanie nazwy automatyzacji i skonfigurowanie warunku. W tym przykładzie dodasz prosty warunek, który ocenia HTTP wiadomości żądania pod kątem GET czasownika (w przeciwieństwie do PUT, POST, itp.) w dowolnym identyfikatorze URI po ścieżce podstawowej.

W panelu Nowy przepływ warunkowy przepływ ma nazwę Przepływ-1, a typ warunku, ścieżka i czasownik są skonfigurowane.

(Dowiedz się, jak tworzyć instrukcje warunkowe w zmiennych i warunkach automatyzacji).

Nowa automatyzacja o nazwie Flow-1 pojawi się teraz w menu nawigacyjnym.

Wyróżniono przepływ 1

Teraz przyjrzyj się konfiguracji XML dla ProxyEndpoint. W menu Nawigator wybierz Flow-1.

Zobaczysz tę konfigurację.

<PreFlow name="PreFlow">
    <Request/>
    <Response/>
</PreFlow>   
<Flows>
    <Flow name="Flow-1">
      <Request/>
      <Response/>
      <Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET")</Condition>
    </Flow>
</Flows>
<PostFlow name="PostFlow">
    <Request/>
    <Response/>
</PostFlow>

Dalsze kroki

Więcej informacji o tworzeniu warunków i używaniu zmiennych znajdziesz w tych artykułach: