Sie sehen sich die Dokumentation zu Apigee Edge an.
Rufen Sie die Dokumentation zu Apigee X auf. 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 bearbeiten. 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-Richtlinie an einen bedingten Ablauf des ProxyEndpoint 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.
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 beliebigem Inhalt im URI nach dem letzten Schrägstrich) am 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 Ablaufvariable sind benannte Referenzen, die Zustandsinformationen 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, kann Ihre API zwei bedingte Abläufe definieren, 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.
Klicken Sie im gewünschten Endpunkt auf das Symbol + Icon.
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.
(Informationen zum Erstellen von bedingten Anweisungen finden Sie unter Ablaufvariablen und -bedingungen.)
Der neue Ablauf mit dem Namen Flow-1 wird jetzt im Navigationsmenü angezeigt.
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>
Tipp
In den folgenden Themen finden Sie weitere Informationen zum Erstellen von Bedingungen und zum Verwenden von Variablen: