Abläufe konfigurieren

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

Abläufe sind die grundlegenden Bausteine von API-Proxys. Mit Abläufen können Sie das Verhalten einer API programmieren, indem Sie die Sequenz konfigurieren, in der Richtlinien und Code von einem API-Proxy ausgeführt werden.

Eine konzeptionelle Übersicht über Abläufe finden Sie unter Ausführung eines Proxys mit Abläufen steuern.

In diesem Thema wird beschrieben, wie Sie bedingte Abläufe erstellen und Abläufen einer übergeordneten Ebene Logik (Richtlinien) hinzufügen. Die Erstellung von Bedingungen erfordert mehr Details als in diesem Thema behandelt. Weitere Informationen finden Sie unter Übersicht über Ablaufvariablen und Bedingungen mit Ablaufvariablen.

Richtlinien mit Abläufen verknüpfen

Edge bietet viele verschiedene Arten vordefinierter Richtlinien, um Sicherheit zu implementieren, Traffic zu verwalten und Nachrichten zu manipulieren. Darüber hinaus können Sie Ihren Richtlinien Ihren eigenen benutzerdefinierten Code hinzufügen, um die Nachrichtenverarbeitung vollständig anzupassen.

Beispiel:

  • Hängen Sie eine OAuth-Sicherheitsrichtlinie an den Anfrage PreFlow des ProxyEndpoint an. Da der Anfrage PreFlow des ProxyEndpoints der erste Ablauf in der Pipeline ist, können Sie eine Anfrage sofort ablehnen, wenn sie gegen Ihre Sicherheitsrichtlinien verstößt.
  • Hängen Sie eine JSON-zu-XML-Konvertierungsrichtlinie an den Antwort PostFlow des TargetEndpoint an, um eine Antwort von JSON in XML zu konvertieren.
  • Hängen Sie eine JavaScript an einen JavaScript an, um JavaScript-Code auszuführen, um die Anfrage zu verarbeiten.

Nachdem Sie einen bedingten Ablauf erstellt haben, kann er mit der Richtlinie verknüpft werden. Wählen Sie den Ablauf aus und klicken Sie auf das Symbol + Schritt im Anfrage- oder Antwortdiagramm, um eine neue oder vorhandene Richtlinie zum Ablauf hinzuzufügen.

Im Navigator-Menü ist ein Beispiel für einen bedingten Ablauf mit Namen "issue" hervorgehoben. Im Bereich "Ablauf" wird die Schaltfläche "Schritt" angezeigt.

Im Bereich "Schritt hinzufügen" wird eine neue Richtlinieninstanz mit dem Richtlinientyp "Quota" und dem Anzeigenamen "Quota-2" erstellt.

Durch Verknüpfen der Richtlinie mit dem ausgewählten Ablauf konfigurieren Sie den API-Proxy so, dass die Kontingentrichtlinie nur für Anfragen an diese Kombination aus Ablauf-URI und Verb erzwungen wird. Wenn Sie die Richtlinie beispielsweise mit dem learn-Ablauf in der Anfrage verknüpfen, wird die folgende XML-Datei in der Codeansicht des Proxy-Editors generiert:

<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>

Wenn bei dieser Konfiguration eine GET-Anfrage mit dem URI-Muster .../issue/** (/issue/ mit einem beliebigen Wert im URI nach dem letzten Schrägstrich) beim API-Proxy eingeht, wird das Kontingent für diesen API-Aufruf erzwungen.

Bedingte Abläufe

Alle mit PreFlow oder PostFlow verknüpften Richtlinien werden immer ausgeführt. Die Richtlinien in einem bedingten Ablauf werden jedoch nur ausgeführt, wenn die Bedingung des Ablaufs „true“ ist.

Während der Verarbeitung einer Anfrage und einer Antwort wird nur ein bedingter Ablauf pro Segment ausgeführt – der erste Ablauf, dessen Bedingung als "true" ausgewertet wird. Das bedeutet, dass Sie für jede der folgenden Pipelines einen bedingten Ablauf ausführen können:

  • Anfragepipeline des Proxy-Endpunkts
  • Anfragepipeline des Ziel-Endpunkts
  • Antwortpipeline des Proxy-Endpunkts
  • Antwortpipeline des Ziel-Endpunkts

Video: In einem kurzen Video erfahren Sie mehr über bedingte Abläufe.

Die folgende ProxyEndpoint-Definition zeigt beispielsweise einen bedingten Ablauf, der vom ProxyEndpoint für jede HTTP GET-Anfrage an den API-Proxy ausgeführt wird:

<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>

Beachten Sie, dass die Bedingung auf die request.verb Ablaufvariable verweist. Eine Flussvariable hat benannte Referenzen, die Statusinformationen enthalten, die mit einer von Edge verarbeiteten API-Transaktion verknüpft sind. Edge definiert viele Zustandsvariablen, auf die Sie verweisen können.

RESTful-Dienste sind Sammlungen von API-Ressourcen. Eine API-Ressource ist ein URI-Pfadfragment, das eine Entität identifiziert, auf die Entwickler durch Aufrufen Ihrer API zugreifen können. Wenn Ihr Dienst-Back-End beispielsweise Wetterberichte und Wettervorhersagen bereitstellt, definiert Ihre API möglicherweise zwei bedingte Abläufe, die diesen API-Ressourcen zugeordnet sind: /reports und /forecasts. Wenn ein API-Aufruf eine dieser Ressourcen in der URL enthält, wird die Bedingung als wahr ausgewertet und die Logik, die an den bedingten Ablauf angehängt ist, wird ausgeführt.

Anwendungsentwickler können dann auf Ihre Ressourcen zugreifen mit Anfragen an eine URL im folgenden Format:

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

oder:

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

In einem API-Proxy können Sie einen bedingten Ablauf definieren, der einer bestimmten Ressource entspricht:

<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>

In diesem Beispiel verweisen Sie auf die Ablaufvariable proxy.pathsuffix, die den Suffix-Teil der URL enthält, die für den Zugriff auf den API-Proxy verwendet wird. Anschließend haben Sie die Möglichkeit, den bedingten Ablauf für jede Ressource mit unterschiedliche Richtlinien zu verknüpfen.

Bedingten Ablauf hinzufügen

In diesem kurzen Beispiel richten Sie einen Ablauf ein, der nur ausgeführt wird, wenn die Anfragenachricht eine HTTP GET ist.

Wählen Sie zum Hinzufügen eines bedingten Ablaufs im API-Proxy-Builder den Tab Entwickeln aus.

Tab &quot;Develop&quot; von Proxy Builder

Klicken Sie im gewünschten Endpunkt auf das Symbol + Icon.

Schaltfläche für bedingten Ablauf hinzufügen

Mit dem Formular New Conditional Flow können Sie den Ablauf benennen und eine Bedingung konfigurieren. Im folgenden Beispiel fügen Sie eine einfache Bedingung hinzu, mit der das HTTP der Anfragenachricht für ein GET-Verb (im Gegensatz zu PUT, POST usw.) auf jedem URI nach dem Basispfad ausgewertet wird.

Im Bereich &quot;New Conditional Flow&quot; heißt der Ablauf &quot;Flow-1&quot; und der Bedingungstyp, -Pfad und -Verb sind konfiguriert.

(Informationen zum Erstellen von bedingten Anweisungen finden Sie unter Ablaufvariablen und -bedingungen.)

Der neue Ablauf namens Flow-1 wird jetzt im Navigationsmenü angezeigt.

Flow-1 hervorgehoben

Sehen Sie sich nun die XML-Konfiguration für den ProxyEndpoint an. Wählen Sie im Menü Navigator die Option Flow-1 aus.

Die folgende Konfiguration wird angezeigt.

<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>

Nächste Schritte

In den folgenden Themen finden Sie weitere Informationen zum Erstellen von Bedingungen und zum Verwenden von Variablen: