<ph type="x-smartling-placeholder"></ph>
Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
Was
Die Richtlinie ExtractVariables extrahiert Inhalte aus einer Anfrage oder Antwort und legt den Wert einer Variablen auf diesen Inhalt fest. Sie können einen beliebigen Teil der Nachricht extrahieren, wie Header, URI-Pfade, JSON-/XML-Nutzlasten, Formularparameter und Abfrageparameter. Die Richtlinie wendet ein Textmuster auf den Nachrichteninhalt an und legt nach dem Finden einer Übereinstimmung eine Variable mit dem angegebenen Nachrichteninhalt fest.
Sie verwenden diese Richtlinie zwar häufig zum Extrahieren von Informationen aus einer Anfrage- oder Antwortnachricht, aber auch zum Extrahieren von Informationen aus anderen Quellen, einschließlich Entitäten, die von der Richtlinie für Zugriffsentitäten, XML-Objekten oder JSON-Objekten erstellt wurden.
Nachdem Sie den angegebenen Nachrichteninhalt extrahiert haben, können Sie bei der Verarbeitung einer Anfrage und Antwort auf die Variable in anderen Richtlinien verweisen.
Videos
In folgenden Videos erfahren Sie mehr über die ExtractVariables-Richtlinie.
Video | Beschreibung |
---|---|
Variablen aus XML-Nutzlast extrahieren | Extrahieren Sie Variablen aus einer XML-Nutzlast mithilfe der Richtlinie „Variablen extrahieren“. |
Variablen aus JSON-Nutzlast extrahieren | Extrahieren Sie Variablen mithilfe der Richtlinie „Variablen extrahieren“ aus einer JSON-Nutzlast. |
Variablen aus Parametern extrahieren | Extrahieren Sie Variablen aus Parametern wie Abfrage, Header, Formular oder URI-Parameter. |
Variablen aus Mehrwert-Parametern extrahieren | Variablen aus Mehrwert-Parametern extrahieren. |
Variablen extrahieren aus Abfrageparameter (Classic Edge) | Extrahieren Sie Variablen aus einem Abfrageparameter mithilfe der Classic Edge-Benutzeroberfläche. |
Variablen extrahieren aus XML- oder JSON-Nutzlast (Classic Edge) | Extrahieren Sie Variablen aus einer XML- oder JSON-Nutzlast mit der Classic Edge-Benutzeroberfläche. |
Beispiele
Diese Codebeispiele veranschaulichen, wie Variablen aus den folgenden Artefaktarten extrahiert werden:
GitHub
<ph type="x-smartling-placeholder">Diese Links verweisen auf funktionierende API-Proxy-Beispiele, die Sie auf Edge bereitstellen und ausführen können. Sie Sie verwenden ExtractVariables und befinden sich im API-Platform-Beispiel-Repository von Apigee auf GitHub In den README-Dateien wird erläutert, wie ExtractVariables im jeweiligen Fall verwendet wird und wie die Bereitstellung und jedes Beispiel ausführen.
- Extrahieren und Zuweisen von Variablenbeispielen (Daten aus JSON- und XML-Nachrichten extrahieren)
- Zugang Entitätsbeispiel
- Paginierung und Caching-Beispiel
- Route neu berechnen Beispiel für eine Ziel-URL
- – Beispiel für eine Composition Mashup-Richtlinie
URIs
<ExtractVariables name="ExtractVariables-1"> <DisplayName>Extract a portion of the url path</DisplayName> <Source>request</Source> <URIPath> <Pattern ignoreCase="true">/accounts/{id}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
Sehen Sie sich den oben aufgeführten Beispielcode an. Mit dem Element <URIPath>
wird die ExtractVariables-Richtlinie angewiesen, Informationen aus dem URI-Pfad zu extrahieren. Das <Pattern>
-Element gibt das Muster an, das auf den URI-Pfad angewendet werden soll. Das Muster wird als einfache Vorlage behandelt, wobei die geschweiften Klammern den abweichenden Teil des URI-Pfads enthalten.
Der Name der festzulegenden Variable wird durch den Wert bestimmt, der im Element <VariablePrefix>
angegeben ist, sowie durch den Wert in geschweiften Klammern ({}) des Elements <Pattern>
. Die beiden Werte werden durch einen dazwischenliegenden Punkt verbunden, was zu einem variablen Namen wie urirequest.id
führt. Wenn kein <VariablePrefix>
-Element vorhanden ist, ist der Variablenname einfach der Wert in geschweiften Klammern.
Betrachten Sie den obigen Beispielrichtliniencode, um die folgende eingehende Anfrage zu verwenden:
GET http://org1-test.apigee.net/svc1/accounts/12797282
Angenommen, der Basispfad für den API-Proxy lautet /svc1
. Wenn Apigee Edge die
Extrahiert den Richtliniencode oben aus dieser eingehenden Anfrage und legt die Variable fest,
urirequest.id
in 12797282
. Nachdem Apigee Edge die Richtlinie ausgeführt hat,
nachfolgende Richtlinien oder Code im Verarbeitungsablauf auf die Variable
urirequest.id
, um den Stringwert 12797282
abzurufen.
Die folgende AssignMessage-Richtlinie bettet beispielsweise den Wert dieser Variable in die Nutzlast einer neuen Anfragenachricht ein:
<AssignMessage async="false" continueOnError="false" enabled="true" name="AssignPayload"> <DisplayName>AssignPayload</DisplayName> <Set> <Payload contentType="text/xml"> <IdExtractedFromURI>{urirequest.id}</IdExtractedFromURI> </Payload> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="true" transport="http" type="request">newRequest</AssignTo> </AssignMessage>
Abfrageparameter
<ExtractVariables name="ExtractVariables-2"> <DisplayName>Extract a value from a query parameter</DisplayName> <Source>request</Source> <QueryParam name="code"> <Pattern ignoreCase="true">DBN{dbncode}</Pattern> </QueryParam> <VariablePrefix>queryinfo</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
Betrachten Sie den obigen Beispielrichtliniencode, um die folgende eingehende Anfrage zu verwenden:
GET http://org1-test.apigee.net/accounts/12797282?code=DBN88271
Wenn Apigee Edge den obigen Richtliniencode für ExtractVariables auf diese eingehende Anfrage anwendet,
wird die Variable queryinfo.dbncode
auf 88271
gesetzt. Nach Apigee Edge
die Richtlinie ausführt, können nachfolgende Richtlinien oder Code im Verarbeitungsablauf auf den
Variable namens queryinfo.dbncode
, um den Stringwert 88271
abzurufen.
Sie können jetzt auf die Variable queryinfo.dbncode
in Ihrem Proxy zugreifen.
Die folgendeAssignMessage-Richtlinie kopiert sie beispielsweise in die Nutzlast der Anfrage:
<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath"> <DisplayName>GetQP</DisplayName> <Set> <Payload contentType="text/xml"> <ExtractQP>{queryinfo.dbncode}</ExtractQP> </Payload> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Mehrere Parameter
<ExtractVariables name="ExtractVariables-2"> <DisplayName>Extract a value from a query parameter</DisplayName> <Source>request</Source> <QueryParam name="w"> <Pattern ignoreCase="true">{firstWeather}</Pattern> </QueryParam> <QueryParam name="w.2"> <Pattern ignoreCase="true">{secondWeather}</Pattern> </QueryParam> <VariablePrefix>queryinfo</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
Angenommen, das API-Design ermöglicht die Angabe mehrerer Abfrageparameter mit demselben Namen. Mit dieser Richtlinie können Sie den Wert mehrerer Instanzen der Abfrage extrahieren Parameter „w“. Um auf diese Abfrageparameter in der ExtractVariables-Richtlinie zu verweisen, Indexe verwenden, bei denen die erste Instanz des Abfrageparameters keinen Index hat, die zweite in Index 2, der dritte bei Index 3 usw.
Betrachten Sie den obigen Beispielrichtliniencode, um die folgende eingehende Anfrage zu verwenden:
GET http://org1-test.apigee.net/weather?w=Boston&w=Chicago
Wenn Apigee Edge den obigen Richtliniencode für ExtractVariables auf diese eingehende Anfrage anwendet,
wird die Variable queryinfo.firstWeather
auf Boston
gesetzt und
Variable queryInfo.secondWeather
auf Chicago
.
Sie können jetzt auf die Variable queryinfo.firstWeather
und
queryinfo.secondWeather in
Ihren Proxy. Die folgende AssignMessage-Richtlinie kopiert beispielsweise die Variable in die Nutzlast der Anfrage:
<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath"> <DisplayName>GetQP</DisplayName> <Set> <Payload contentType="text/xml"> <ExtractQP1>{queryinfo.firstWeather}</ExtractQP1> <ExtractQP2>{queryinfo.secondWeather}</ExtractQP2> </Payload> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Header
<ExtractVariables name='ExtractVariable-OauthToken'> <Source>request</Source> <Header name="Authorization"> <Pattern ignoreCase="false">Bearer {oauthtoken}</Pattern> </Header> <VariablePrefix>clientrequest</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
Angenommen, Ihre API verwendet OAuth 2.0-Inhabertokens. Sehen Sie sich den obigen Beispielrichtliniencode an, um eine Anfrage mit einem OAuth v2.0-Token zu verwenden, das einen Header wie den folgenden enthält: Authorization: Bearer TU08xptfFfeM7aS0xHqlxTgEAdAM.
Angenommen, Sie möchten als API-Designer den Tokenwert (nicht den gesamten Header) als Schlüssel bei einer Cache-Suche verwenden. Sie können das Token mit dem oben aufgeführten Richtliniencode „ExtractVariables“ extrahieren.
Wenn Apigee Edge den obigen Richtliniencode für ExtractVariables auf diesen Header anwendet, geschieht Folgendes:
Variable clientrequest.oauthtoken
festlegen auf
TU08xptfFfeM7aS0xHqlxTgEAdAM
.
Sie können jetzt auf die Variable clientrequest.oauthtoken
in Ihrem Proxy zugreifen. Die folgende AssignMessage-Richtlinie kopiert beispielsweise die Variable in die Nutzlast der Anfrage:
<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath"> <DisplayName>GetHeader</DisplayName> <Set> <Payload contentType="text/xml"> <ExtractHeader>{clientrequest.oauthtoken}</ExtractHeader> </Payload> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
JSON
<ExtractVariables name="ExtractVariables-3"> <Source>response</Source> <JSONPayload> <Variable name="latitude" type="float"> <JSONPath>$.results[0].geometry.location.lat</JSONPath> </Variable> <Variable name="longitude" type="float"> <JSONPath>$.results[0].geometry.location.lng</JSONPath> </Variable> </JSONPayload> <VariablePrefix>geocoderesponse</VariablePrefix> </ExtractVariables>
<JSONPayload>
$
Betrachten Sie die folgende JSON-Antwortnutzlast:
{ "results": [{ "geometry": { "location": { "lat": 37.42291810, "lng": -122.08542120 }, "location_type": "ROOFTOP", "viewport": { "northeast": { "lat": 37.42426708029149, "lng": -122.0840722197085 }, "southwest": { "lat": 37.42156911970850, "lng": -122.0867701802915 } } } }] }
Wenn Apigee Edge den obigen Richtliniencode für ExtractVariables auf diese JSON-Nachricht anwendet,
legt zwei Variablen fest: geocoderesponse.latitude
und
geocoderesponse.longitude
. Beide Variablen verwenden dasselbe Variablenpräfix von geocoderesponse
. Das Suffix für diese Variablen wird explizit durch das Attribut name
des Elements <Variable>
angegeben.
Die Variable geocoderesponse.latitude
ruft den Wert 37.42291810
ab. Die Variable geocoderesponse.longitude
ruft den Wert -122.08542120
ab.
Sie können jetzt auf die Variable geocoderesponse.latitude
in Ihrem Proxy zugreifen. Beispielsweise kopiert die folgendeAssignMessage-Richtlinie sie in einen Header namens „latitude“.
in der Antwort:
<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath"> <DisplayName>GetJSONVar</DisplayName> <Add> <Headers> <Header name="latitude">{geocoderesponse.latitude}</Header> </Headers> </Add> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="response"/> </AssignMessage>
XML
<ExtractVariables name="ExtractVariables-4"> <Source>response</Source> <XMLPayload> <Namespaces> <Namespace prefix="dir">urn:43BFF88D-D204-4427-B6BA-140AF393142F</Namespace> </Namespaces> <Variable name="travelmode" type="string"> <XPath>/dir:Directions/dir:route/dir:leg/dir:step/@mode</XPath> </Variable> <Variable name="duration" type="string"> <XPath>/dir:Directions/dir:route/dir:leg/dir:step/dir:duration/dir:value</XPath> </Variable> <Variable name="timeunit" type="string"> <XPath>/dir:Directions/dir:route/dir:leg/dir:step/dir:duration/dir:text</XPath> </Variable> </XMLPayload> <VariablePrefix>directionsresponse</VariablePrefix> </ExtractVariables>
<XMLPayload>
Betrachten Sie die folgende XML-Antwortnutzlast:
<Directions xmlns="urn:43BFF88D-D204-4427-B6BA-140AF393142F"> <status>OK</status> <route> <summary>I-40 W</summary> <leg> <step mode="DRIVING"> <start_location> <lat>41.8507300</lat> <lng>-87.6512600</lng> </start_location> <end_location> <lat>41.8525800</lat> <lng>-87.6514100</lng> </end_location> <duration> <value>19</value> <text>minutes</text> </duration> </step> </leg> </route> </Directions>
Wenn Apigee Edge den obigen Richtliniencode für ExtractVariables auf diese XML-Nachricht anwendet, wird er
legt drei Variablen fest: directionsresponse.travelmode,
directionsresponse.duration
und directionsresponse.timeunit
. Alle
Variablen verwenden dasselbe Variablenpräfix wie directionsresponse
. Das Suffix für
Diese Variablen werden explizit durch das Attribut <Variable>
name
-Attribut.
Die Variable directionsresponse.travelmode
ruft den Wert DRIVING
ab. Die Variable directionsresponse.duration
ruft den Wert 19
ab. Die Variable directionsresponse.timeunit
ruft den Wert ab,
minutes
.
Sie können jetzt auf die Variable directionresponse.travelmode
in Ihrem Proxy zugreifen. Die folgende Zuweisungs-Richtlinie kopiert sie beispielsweise in einen Header namens
„tmode“ in der Antwort:
<AssignMessage async="false" continueOnError="false" enabled="true" name="GetURIPath"> <DisplayName>GetXMLVar</DisplayName> <Add> <Headers> <Header name="tmode">{directionsresponse.travelmode}</Header> </Headers> </Add> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Informationen zur Richtlinie „ExtractVariables“
API-Entwickler erstellen API-Proxys, die sich je nach Inhalt einer Nachricht anders verhalten. Darunter fallen Header, URI-Pfade, Nutzlasten und Abfrageparameter. Häufig extrahiert der Proxy einen Teil dieses Inhalts zur Verwendung in einer Bedingungsanweisung. Verwenden Sie dazu die Richtlinie „ExtractVariables“.
Beim Definieren der Richtlinie „ExtractVariables“ können Sie Folgendes auswählen:
- Den Namen der festzulegenden Variable
- Die Quelle der Variablen
- Die Anzahl der Variablen, die extrahiert und festgelegt werden sollen
Bei der Ausführung wendet die Richtlinie ein Textmuster auf den Inhalt an und legt nach dem Finden einer Übereinstimmung den Wert der angegebenen Variable mit dem Inhalt fest. Andere Richtlinien und Code können dann diese Variablen, um dynamisches Verhalten zu ermöglichen oder Geschäftsdaten an Edge API Analytics zu senden.
Wie Sie mit ExtractVariables inhaltsgesteuerte Analytics-Berichte erstellen, erfahren Sie unter Analysieren API-Nachrichteninhalt mit benutzerdefinierten Analysen.
Umfang
Variablen, die mit der Richtlinie „ExtractVariables“ festgelegt sind, haben den Bereich global. Das heißt, nachdem die ExtractVariables-Richtlinie eine neue Variable definiert hat, können Sie auf diese Variable von jeder Richtlinie oder jedem Code in jeder Phase des Ablaufs (der nach der ExtractVariables-Richtlinie ausgeführt wird) zugreifen. Dazu zählen:
- PreFlow: ProxyEndpoint und TargetEndpoint (Anfrage und Antwort)
- PostFlow: ProxyEndpoint und TargetEndpoint (Anfrage und Antwort)
- PostClientFlow:ProxyEndpoint (nur Antwort, unter Verwendung des Nachrichtenprotokollierungsrichtlinie)
- Fehlerabläufe
Informationen zum Abgleichen und zum Erstellen von Variablen
Die Richtlinie „ExtractVariables“ extrahiert Informationen aus einer Anfrage oder Antwort und schreibt diese Informationen in eine Variable. Geben Sie bei allen Arten von Informationen, die Sie extrahieren können, z. B. URI-Pfade oder XML-Daten, das zu vergleichende Muster und den Namen der Variablen an, in der die extrahierten Informationen gespeichert werden.
Der Musterabgleich hängt jedoch von der Extraktionsquelle ab. In den folgenden Abschnitten werden die beiden grundlegenden Kategorien von Informationen beschrieben, die Sie extrahieren können.
Übereinstimmende URI-Pfade, Abfrageparameter, Header, Formularparametern und Variablen
Beim Extrahieren von Informationen aus einem URI-Pfad, Suchparametern, Headern, Formularparametern und Variablen, mit denen Sie mit dem <Pattern>-Tag eines oder mehrere angeben Muster zu vergleichen. Das folgende Richtlinienbeispiel zeigt beispielsweise ein einzelnes Abgleichsmuster für den URI-Pfad:
<ExtractVariables name="ExtractVariables-1"> <Source>request</Source> <URIPath> <Pattern ignoreCase="true">/a/{pathSeg}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
In diesem Beispiel wird die Variable urirequest.pathSeg festgelegt. in den Namen einzufügen, der im "proxy.pathsuffix" nach "/a/" steht. Angenommen, der Basispfad für Ihr API-Proxy ist /basepath/v1 . Mit einer eingehenden Anfrage http://myCo.com/basepath/v1/a/b in der auf „b“ gesetzt ist.
Mehrere Muster angeben
Sie können mehrere übereinstimmende Muster angeben, die <Pattern>-Tags entsprechen, wobei:
- Alle Muster werden auf Übereinstimmungen geprüft.
- Wenn keines der Muster übereinstimmt, wird in der Richtlinie nichts unternommen und die Variable(n) nicht erstellt.
- Wenn mehr als ein Muster übereinstimmt, wird das Muster mit den längsten Pfadsegmenten für Extraktion.
- Wenn zwei übereinstimmende Muster dieselben längsten Pfadsegmente haben, wird das Muster, das zuerst in die Richtlinie zur Extraktion verwendet wird.
Im nächsten Beispiel erstellen Sie eine Richtlinie, die drei übereinstimmende Muster für den URI-Pfad enthält:
<ExtractVariables name="ExtractVariables-1"> <Source>request</Source> <URIPath> <Pattern ignoreCase="true">/a/{pathSeg}</Pattern> <Pattern ignoreCase="true">/a/b/{pathSeg}</Pattern> <Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
Angenommen, für einen API-Proxy mit dem Basispfad /basepath/v1 wäre die URL der eingehenden Anfrage an den API-Proxy hat folgende Form:
http://myCo.com/basepath/v1/a/b
In diesem Beispiel stimmt das erste Muster mit dem URI überein und die Variable urirequest.pathSeg lautet auf „b“ gesetzt ist.
Wenn die Anfrage-URL so aussieht:
http://myCo.com/basepath/v1/a/b/c/d
...dann stimmt das dritte Muster überein und die Variable urirequest.pathSeg ist „d“ festgelegt ist.
Muster mit mehreren Variablen angeben
Sie können mehrere Variablen im Übereinstimmungsmuster angeben. Sie geben beispielsweise ein Übereinstimmungsmuster mit zwei Variablen an:
<ExtractVariables name="ExtractVariables-1"> <Source>request</Source> <URIPath> <Pattern ignoreCase="true">/a/{pathSeg}</Pattern> <Pattern ignoreCase="true">/a/b/{pathSeg}</Pattern> <Pattern ignoreCase="true">/a/{pathSeg1}/c/{pathSeg2}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
Nehmen wir wieder einen API-Proxy mit dem Basispfad /basepath/v1 für die URL der eingehenden Anfrage an:
http://myCo.com/basepath/v1/a/b/c/d
...die Variable urirequest.pathSeg1 ist auf "b" und die Variable urirequest.pathSeg2 ist auf "d" gesetzt.
Mehrere Instanzen im Muster abgleichen
Sie können Muster auch dann abgleichen, wenn mehrere Instanzen eines Elements mit demselben Namen vorhanden sind. Sie können beispielsweise eine Anfrage stellen, die mehrere Abfrageparameter oder mehrere Header mit demselben Namen enthält. Die folgende Anfrage enthält zwei Abfrageparameter namens „w“:
http://myCo.com/basepath/v1/a/b/c/d?w=1&w=2
Wenn Sie in der Richtlinie „ExtractVariables“ auf diese Abfrageparameter verweisen möchten, verwenden Sie Indexe, bei denen die erste Instanz des Abfrageparameters keinen Index hat, die zweite bei Index 2, die dritte bei Index 3 ist usw. Beispielsweise extrahiert die folgende Richtlinie den Wert des zweiten Abfrageparameters mit dem Namen „w“ in der Anfrage:
<ExtractVariables name="ExtractVariables-1"> <Source>request</Source> <QueryParam name="w.2"> <Pattern ignoreCase="true">{secondW}</Pattern> </QueryParam> <VariablePrefix>urirequest</VariablePrefix> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ExtractVariables>
Die Variable urirequest.secondW ist auf „2“ festgelegt. Wird der zweite Suchparameter in der Anfrage weggelassen, ändert sich die Variable urirequest.secondW leer. Wenn in der Anfrage mehrere Elemente mit demselben Namen enthalten sind, sollten Sie die Indexierung verwenden.
Sonderzeichen im Muster verwenden
Beim Abgleich von URI-Pfaden können Sie im Muster die Platzhalterzeichen „*“ und „**“ verwenden, wobei Folgendes gilt:
- „*“ entspricht allen Segmenten im Pfad
- „**“ stimmt mit mehreren Segmenten des Pfads überein
Beispielsweise geben Sie Muster für das <URIPath>-Element wie hier gezeigt an: unten:
<URIPath> <Pattern ignoreCase="true">/a/*/{id}</Pattern> <Pattern ignoreCase="true">/a/**/{id}</Pattern> </URIPath>
Das erste Muster gleicht Anfragen mit Pfadsuffixen ab (dem Teil des URI-Pfads nach dem Basispfad), z. B. "/a/b/c", "/a/foo/bar" usw. Das zweite Muster entspricht einer beliebigen Anzahl von Pfadsegmenten nach "/a/", z. B. "/a/foo/bar/baz/c", sowie "/a/b/c" und "/a/foo/bar".
Bei der Angabe von Mustern für Suchparameter, Header und Formularparameter gibt das Zeichen „*“ an, dass eine beliebige Anzahl von Zeichen abgeglichen werden soll. Wenn Sie beispielsweise einen Header abgleichen, geben Sie das Muster so an:
*;Charset={Codierung}
Dieses Muster entspricht den Werten „text/xml;charset=UTF-16“ und „application/xml;charset=ASCII“.
Wenn der an die Richtlinie ExtractVariables übergebene Wert ein Sonderzeichen enthält, wie z.B. „{“, verwenden Sie das Zeichen „%“, um es zu maskieren. Im folgenden Beispiel werden die Zeichen „{“ und „}“ im Muster umgangen, da sie als Literalzeichen im Wert des Abfrageparameters verwendet werden:
<QueryParam> <Pattern ignoreCase="true">%{user%} {name}</Pattern> </QueryParam>
In diesem Beispiel stimmt das Muster mit dem Wert „{user} Steve“ überein, aber nicht mit dem Wert „user Steve“.
JSON- und XML-Dateien abgleichen
Wenn Sie Daten aus JSON und XML extrahieren, geben Sie in der Richtlinie ein oder mehrere <Variable>-Tags an. Das <Variable>-Tag gibt die Name der Zielvariablen, in der die extrahierten Informationen gespeichert sind, und der JsonPath (JSON) oder XPATH (XML) zu den extrahierten Informationen hinzu.
Alle <Variable>-Tags in der Richtlinie ausgewertet, sodass Sie mehrere Variablen mit einer einzigen Richtlinie füllen können. Wenn wird das <Variable>-Tag in einem gültigen Feld in JSON oder XML ausgewertet wird, dann ist die entsprechende Variable nicht erstellt.
Das folgende Beispiel zeigt eine ExtractVariables-Richtlinie, die zwei Variablen aus dem JSON-Text einer Antwort füllt:
<ExtractVariables name="ExtractVariables-3"> <Source>response</Source> <JSONPayload> <Variable name="latitude" type="float"> <JSONPath>$.results[0].geometry.location.lat</JSONPath> </Variable> <Variable name="longitude" type="float"> <JSONPath>$.results[0].geometry.location.lng</JSONPath> </Variable> </JSONPayload> <VariablePrefix>geocoderesponse</VariablePrefix> </ExtractVariables>
An mehreren Stelle in dieselbe Variable schreiben
Überlegen Sie sich gut, welche Variablen Sie festlegen möchten. Die Richtlinie wird sequenziell vom ersten Extraktionsmuster bis zum letzten ausgeführt. Wenn die Richtlinie von mehreren Stellen aus einen Wert in dieselbe Variable schreibt, bestimmt der letzte Schreibvorgang in der Richtlinie den Wert der Variable. (Vielleicht ist es das, was Sie möchten.)
Sie möchten beispielsweise einen Tokenwert extrahieren, der entweder in einen Abfrageparameter oder in einen Header übergeben wird, wie unten gezeigt:
<!-- If token only in query param, the query param determines the value. If token is found in both the query param and header, header sets value. --> <QueryParam name="token"> <Pattern ignoreCase="true">{tokenValue}</Pattern> </QueryParam> <!-- Overwrite tokenValue even if it was found in query parameter. --> <Header name="Token"> <Pattern ignoreCase="true">{tokenValue}</Pattern> </Header>
Kontrollieren, was geschieht, wenn keine Übereinstimmung auftritt
Wenn das Muster nicht übereinstimmt, wird die entsprechende Variable nicht erstellt. Wenn andere Richtlinien auf die Variable verweisen, kann dies zu einem Fehler führen.
Eine Möglichkeit ist, <IgnoreUnresolvedVariables>
in einer Richtlinie, die auf die Variable verweist, auf true zu setzen, um die Richtlinie so zu konfigurieren, dass jede nicht auflösbare Variable als leere Zeichenfolge (null) behandelt wird:
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
Elementverweis
Die Elementreferenz beschreibt die Elemente und Attribute der ExtractVariables-Richtlinie.
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables 1</DisplayName> <Source clearPayload="true|false">request</Source> <VariablePrefix>myprefix</VariablePrefix> <IgnoreUnresolvedVariables>true|false</IgnoreUnresolvedVariables> <URIPath> <Pattern ignoreCase="false">/accounts/{id}</Pattern> </URIPath> <QueryParam name="code"> <Pattern ignoreCase="true">DBN{dbncode}</Pattern> </QueryParam> <Header name="Authorization"> <Pattern ignoreCase="false">Bearer {oauthtoken}</Pattern> </Header> <FormParam name="greeting"> <Pattern>hello {user}</Pattern> </FormParam> <Variable name="request.content"> <Pattern>hello {user}</Pattern> </Variable> <JSONPayload> <Variable name="name"> <JSONPath>{example}</JSONPath> </Variable> </JSONPayload> <XMLPayload stopPayloadProcessing="false"> <Namespaces/> <Variable name="name" type="boolean"> <XPath>/test/example</XPath> </Variable> </XMLPayload> </ExtractVariables>
Attribute des Typs <ExtractVariables>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
In der folgenden Tabelle werden Attribute beschrieben, die für alle übergeordneten Richtlinienelemente gelten:
Attribut | Beschreibung | Standard | Präsenz |
---|---|---|---|
name |
Der interne Name der Richtlinie. Der Wert des Attributs Optional können Sie das Element |
– | Erforderlich |
continueOnError |
Legen Sie Legen Sie |
false | Optional |
enabled |
Setzen Sie den Wert auf Legen Sie |
true | Optional |
async |
Dieses Attribut wurde verworfen. |
false | Veraltet |
<DisplayName>-Element
Wird zusätzlich zum Attribut name
verwendet, um die Richtlinie im Proxy-Editor der Verwaltungs-UI mit einem anderen Namen in einer natürlichen Sprache zu versehen.
<DisplayName>Policy Display Name</DisplayName>
Standardeinstellung |
– Wenn Sie dieses Element weglassen, wird der Wert des Namensattributs |
---|---|
Präsenz | Optional |
Typ | String |
<Source>-Element
(Optional) Gibt die zu parsende Variable an. Der Wert von <Source>
ist standardmäßig message
. Der Wert message
ist kontextabhängig. In einem Anfragefluss löst message
die Anfragenachricht auf. In einem Antwortfluss löst message
die Antwortnachricht auf.
Obwohl Sie diese Richtlinie häufig zum Extrahieren von Informationen aus einer Anfrage- oder Antwortnachricht verwenden, können Sie sie zum Extrahieren von Informationen aus einer beliebigen Variable verwenden. Sie können damit beispielsweise extrahieren,
Informationen aus einer Entität, die durch die AccessEntity-Richtlinie erstellt wurde, aus Daten
die vom Service zurückgegebene
Callout-Richtlinie oder extrahieren Sie Informationen aus einem XML- oder JSON-Objekt.
Wenn <Source>
nicht aufgelöst werden kann oder in einen Nicht-Nachrichtentyp aufgelöst wird, reagiert die Richtlinie nicht.
<Source clearPayload="true|false">request</Source>
Standard: | message |
Präsenz: | Optional |
Typ: | String |
Attribute
Attribut | Beschreibung | Standard | Präsenz | Typ |
---|---|---|---|---|
clearPayload |
Setzen Sie den Wert auf true, wenn Sie die im
<Source> nachdem Sie Daten daraus extrahiert haben. |
false |
Optional | Boolean |
<VariablePrefix>-Element
(Optional) Der vollständige Variablenname wird durch Zusammenführen von <VariablePrefix>
, einem Punkt und dem von Ihnen in {geschweiften Klammern} im Element <Pattern>
oder <Variable> definierten Namen erstellt. Beispiel: myprefix.id
, myprefix.dbncode
oder myprefix.oauthtoken.
<VariablePrefix>myprefix</VariablePrefix>
Nehmen wir zum Beispiel an, der Wert von „name“ sei „user“.
- Wenn
<VariablePrefix>
nicht angegeben ist, werden die extrahierten Werte einer Variable namensuser
zugewiesen. - Wenn
<VariablePrefix>
als myprefix angegeben wird, werden die extrahierten Werte einer Variable namensmyprefix.user
zugewiesen.
Standard: | – |
Präsenz: | Optional |
Typ: | String |
<IgnoreUnresolvedVariables>-Element
Optional: Setzen Sie diesen Wert auf true
, um alle nicht aufgelösten Variablen als leeren String zu behandeln (null). Setzen Sie den Wert auf false
, wenn die Richtlinie einen Fehler auslösen soll, wenn eine referenzierte Variable nicht aufgelöst werden kann.
<IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
Standard: | False |
Präsenz: | Optional |
Typ: | Boolesch |
Wenn ein XPath-Verweis in einem <XMLPayload>
nicht aufgelöst ist, löst die Richtlinie
folgenden Fehler:
{ "fault":{ "faultstring":"Unresolved xpath path in policy policy_name.", "detail":{ "errorcode":"steps.extractvariables.InvalidXPath" } } }
<URIPath>-Element
(Optional, aber weitere Informationen finden Sie in der Zeile Präsenz in der Tabelle unten). Extrahiert einen Wert aus dem proxy.pathsuffix einer request-Quellnachricht. Der für das Muster angewendete Pfad ist proxy.pathsuffix, der nicht den Basispfad für den API-Proxy enthält. Wenn wird die Quellnachricht in den Nachrichtentyp response aufgelöst, dann bewirkt dieses Element nichts.
<URIPath> <Pattern ignoreCase="false">/accounts/{id}</Pattern> </URIPath>
Es ist möglich, mehrere <Pattern>-Elemente zu verwenden:
<URIPath> <Pattern ignoreCase="false">/accounts/{id}</Pattern> <Pattern ignoreCase="false">/accounts/{id}/transactions/{index}</Pattern> </URIPath>
Standard: | – |
Präsenz: | Optional: Sie müssen jedoch mindestens eine der folgenden Optionen hinzufügen:
<URIPath> , <QueryParam> , <Header> ,
<FormParam> , <JSONPayload> , or
<XMLPayload>. |
Typ: | – |
Attribute
Attribut | Beschreibung | Standard | Präsenz | Typ |
---|---|---|---|---|
ignoreCase | Gibt an, dass die Groß-/Kleinschreibung beim Abgleich mit dem Muster ignoriert wird. |
false |
Optional | Boolean |
<QueryParam>-Element
(Optional, aber weitere Informationen finden Sie in der Zeile Präsenz in der Tabelle unten). Extrahiert einen Wert aus dem angegebenen Abfrageparameter einer request-Quellnachricht. Wenn die Quellnachricht in den Nachrichtentyp response aufgelöst, dann hat dieses Element nichts.
<QueryParam name="code"> <Pattern ignoreCase="true">DBN{dbncode}</Pattern> </QueryParam>
Wenn mehrere Suchparameter denselben Namen haben, verweisen Sie mit Indexen auf die Parameter:
<QueryParam name="w.2"> <Pattern ignoreCase="true">{secondW}</Pattern> </QueryParam>
Standard: | – |
Präsenz: | Optional: Sie müssen jedoch mindestens eine der folgenden Optionen hinzufügen:
<URIPath> , <QueryParam> , <Header> ,
<FormParam> , <JSONPayload> , or
<XMLPayload>. |
Typ: | – |
Attribute
Attribut | Beschreibung | Standard | Präsenz | Typ |
---|---|---|---|---|
Name | Gibt den Namen des Suchparameters an. Wenn mehrere Suchparameter denselben Namen haben, verwenden Sie indexierte Verweise, bei denen die erste Instanz des Suchparameters keinen Index hat, die zweite an Index 2 verwiesen wird, die dritte an Index 3 usw. |
– |
Erforderlich | String |
<Header>-Element
(Optional, aber weitere Informationen finden Sie in der Zeile Präsenz in der Tabelle unten). Extrahiert einen Wert aus dem angegebenen HTTP-Header der angegebenen request- oder response-Nachricht. Wenn mehrere Header denselben Namen haben, werden ihre Werte in einem Array gespeichert.
<!-- The name is the actual header name. --> <Header name="Authorization"> <!-- Provide a name for your new custom variable here. --> <Pattern ignoreCase="false">Bearer {oauthtoken}</Pattern> </Header>
Wenn mehrere Header denselben Namen haben, verweisen Sie mit Indexen auf einzelne Header im Array:
<Header name="myHeader.2"> <Pattern ignoreCase="true">{secondHeader}</Pattern> </Header>
Alternativ können Sie auch alle Header im Array auflisten:
<Header name="myHeader.values"> <Pattern ignoreCase="true">{myHeaders}</Pattern> </Header>
Standard: | – |
Präsenz: | Optional: Sie müssen jedoch mindestens eine der folgenden Optionen hinzufügen:
<URIPath> , <QueryParam> , <Header> ,
<FormParam> , <JSONPayload> , or
<XMLPayload>. |
Typ: | – |
Attribute
Attribut | Beschreibung | Standard | Präsenz | Typ |
---|---|---|---|---|
Name | Gibt den Namen des Headers an, aus dem der Wert extrahiert wird. Wenn mehrere Header denselben Namen haben, verwenden Sie indexierte Verweise, bei denen die erste Instanz des Headers keinen Index hat, die zweite sich bei Index 2, die dritte bei Index 3 usw. befindet. Verwenden Sie .values , um alle Header im Array abzurufen. |
– |
Erforderlich | String |
<FormParam>-Element
(Optional, aber weitere Informationen finden Sie in der Zeile Präsenz in der Tabelle unten). Extrahiert einen Wert
aus dem angegebenen Formparameter der angegebenen request- oder response-Nachricht. Formularparameter können nur dann extrahiert werden, wenn der Content-Type
-Header der angegebenen Nachricht application/x-www-form-urlencoded
lautet.
<FormParam name="greeting"> <Pattern>hello {user}</Pattern> </FormParam>
Standard: | – |
Präsenz: | Optional: Sie müssen jedoch mindestens eine der folgenden Optionen hinzufügen:
<URIPath> , <QueryParam> , <Header> ,
<FormParam> , <JSONPayload> , or
<XMLPayload>. |
Typ: | – |
Attribute
Attribut | Beschreibung | Standard | Präsenz | Typ |
---|---|---|---|---|
Name | Der Name des Formularparameters, aus dem der Wert extrahiert wird. |
– |
Erforderlich | String |
<Variable>-Element
(Optional, aber weitere Informationen finden Sie in der Zeile Präsenz in der Tabelle unten). Gibt den Namen einer Variablen an, aus der ein Wert extrahiert werden soll.
<Variable name="myVar"> <Pattern>hello {user}</Pattern> </Variable>
So extrahieren Sie zwei Werte aus der Variable:
<Variable name="myVar"> <Pattern>hello {firstName} {lastName}</Pattern> </Variable>
Standard: | – |
Präsenz: | Optional: Sie müssen jedoch mindestens eine der folgenden Optionen hinzufügen:
<URIPath> , <QueryParam> , <Header> ,
<FormParam> , <JSONPayload> , or
<XMLPayload>. |
Typ: | – |
Attribute
Attribut | Beschreibung | Standard | Präsenz | Typ |
---|---|---|---|---|
name | Der Name der Variablen, aus der der Wert extrahiert werden soll. |
– |
Erforderlich | String |
<JSONPayload>-Element
(Optional, aber weitere Informationen finden Sie in der Zeile Präsenz in der Tabelle unten). Gibt die XML-formatierte Nachricht an, aus der der Wert der Variablen extrahiert wird. JSON Die Extraktion wird nur ausgeführt, wenn der Content-Type-Header der Nachricht application/json lautet.
<ph type="x-smartling-placeholder"><JSONPayload> <Variable name="name" type="string"> <JSONPath>{example}</JSONPath> </Variable> </JSONPayload>
Standard: | – |
Präsenz: | Optional: Sie müssen jedoch mindestens eine der folgenden Optionen hinzufügen:
<URIPath> , <QueryParam> , <Header> ,
<FormParam> , <JSONPayload> , or
<XMLPayload>. |
Typ: | – |
<JSONPayload>/<Variable> Element
(Erforderlich innerhalb des JSONPayload-Elements.) Gibt die Variable an, der der extrahierte Wert zugewiesen ist. Sie können mehrere <Variable>-Tags in das <Variable>-Element einfügen, um Daten zu füllen. mehrere Variablen enthalten.
<Variable name="name" type="string"> <JSONPath>{example}</JSONPath> </Variable>
Standard: | – |
Präsenz: | Erforderlich innerhalb des JSONPayload-Elements. |
Typ: | – |
Attribute
Attribut | Beschreibung | Standard | Präsenz | Typ |
---|---|---|---|---|
name |
Gibt den Namen der Variablen an, der der extrahierte Wert zugewiesen wird. |
name |
Erforderlich | String |
Typ | Gibt den Datentyp des Variablenwerts an. | – | Optional |
String. Auswählen aus:
|
<JSONPayload>/<Variable>/<JSONPath> Element
(Erforderlich innerhalb des JSONPayload:Variable-Elements) Gibt den JSON-Pfad an, der zum Extrahieren eines Werts aus einer JSON-formatierten Nachricht verwendet wird.
<Variable name="name"> <JSONPath>$.rss.channel.title</JSONPath> </Variable>
Standard: | – |
Präsenz: | Erforderlich |
Typ: | String |
<XMLPayload>-Element
(Optional, aber weitere Informationen finden Sie in der Zeile Präsenz in der Tabelle unten). Gibt die XML-formatierte Nachricht an, aus der der Wert der Variablen extrahiert wird. XML-Nutzlasten werden nur extrahiert, wenn der Content-Type
-Header der Nachricht text/xml
, application/xml
oder application/*+xml
ist.
<XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <Variable name="name" type="boolean"> <XPath>/apigee:test/apigee:example</XPath> </Variable> </XMLPayload>
Standard: | – |
Präsenz: | Optional: Sie müssen jedoch mindestens eine der folgenden Optionen hinzufügen:
<URIPath> , <QueryParam> , <Header> ,
<FormParam> , <JSONPayload> , or
<XMLPayload>. |
Typ: | – |
Attribute
Attribut | Beschreibung | Standard | Präsenz | Typ |
---|---|---|---|---|
stopPayloadProcessing |
Legen Sie |
false |
Optional | Boolean |
<XMLPayload>/<Namespaces> Element
(Optional) Gibt den Namespace an, der bei der XPath-Bewertung verwendet werden soll. Wenn Sie in Ihren XPath-Ausdrücken Namespaces verwenden, müssen Sie die Namespaces hier angeben, wie im folgenden Beispiel gezeigt.
<XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <Variable name="legName" type="string"> <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath> </Variable> </XMLPayload>
Wenn Sie in Ihren XPath-Ausdrücken keine Namespaces verwenden, können Sie das Element <Namespaces>
auslassen oder kommentieren, wie im folgenden Beispiel gezeigt:
<XMLPayload stopPayloadProcessing="false"> <!-- <Namespaces/> --> <Variable name="legName" type="string"> <XPath>/Directions/route/leg/name</XPath> </Variable> </XMLPayload>
Standard: | – |
Präsenz: | Optional |
Typ: | String |
Attribute
Attribut | Beschreibung | Standard | Präsenz | Typ |
---|---|---|---|---|
prefix |
Das Namespace-Präfix. |
– |
Erforderlich | String |
<XMLPayload>/<Variable> Element
(Optional) Gibt die Variable an, der der extrahierte Wert zugewiesen wird.
<Variable name="name" type="boolean"> <XPath>/test/example</XPath> </Variable>
Standard: | – |
Präsenz: | Optional |
Typ: | – |
Attribute
Attribut | Beschreibung | Standard | Präsenz | Typ |
---|---|---|---|---|
name |
Gibt den Namen der Variablen an, der der extrahierte Wert zugewiesen wird. |
name |
Erforderlich | String |
Typ | Gibt den Datentyp des Variablenwerts an. | Boolean | Optional |
String. Auswählen aus:
|
<XMLPayload>/<Variable>/<XPath>-Element
(Erforderlich innerhalb des XMLPayloads:Variable-Elements) Gibt den für die Variable definierten XPath an. Es werden nur XPath 1.0-Ausdrücke unterstützt.
<Variable name="name" type="boolean"> <XPath>/test/example</XPath> </Variable>
Beispiel mit einem Namespace. Wenn Sie in Ihren XPath-Ausdrücken Namespaces verwenden, müssen Sie
Namespaces im Abschnitt <XMLPayload><Namespaces>
der Richtlinie.
<Variable name="name" type="boolean"> <XPath>/foo:test/foo:example</XPath> </Variable>
Standard: | – |
Präsenz: | Erforderlich |
Typ: | String |
Fehlerreferenz
Dieser Abschnitt beschreibt die Fehlercodes und Fehlermeldungen, die zurückgegeben werden, und die Fehlervariablen, die von Edge festgelegt werden, wenn diese Richtlinie einen Fehler auslöst. Diese Informationen sind wichtig, wenn Sie Fehlerregeln zur Verarbeitung von Fehlern entwickeln. Weitere Informationen finden Sie unter Was Sie über Richtlinienfehler wissen müssen und Fehler beheben.
Laufzeitfehler
Diese Fehler können bei Ausführung der Richtlinie auftreten.
Fehlercode | HTTP-Status | Ursache | Beheben |
---|---|---|---|
steps.extractvariables.ExecutionFailed |
500 |
Dieser Fehler tritt in folgenden Fällen auf:
|
build |
steps.extractvariables.ImmutableVariable |
500 | Eine in der Richtlinie verwendete Variable ist unveränderlich. Diese Variable konnte von der Richtlinie nicht festgelegt werden. | |
steps.extractvariables.InvalidJSONPath |
500 | Dieser Fehler tritt auf, wenn im JSONPath -Element der Richtlinie ein ungültiger JSON-Pfad verwendet wird. Wenn beispielsweise eine JSON-Nutzlast das Objekt Name nicht enthält, Sie aber Name als Pfad in der Richtlinie angeben, tritt dieser Fehler auf. |
build |
steps.extractvariables.JsonPathParsingFailure |
500 | Dieser Fehler tritt auf, wenn die Richtlinie einen JSON-Pfad nicht parsen und keine Daten aus der im Element Source angegebenen Flussvariable extrahieren kann. Dies geschieht normalerweise, wenn die im Element Source angegebene Flussvariable im aktuellen Ablauf nicht vorhanden ist. |
build |
steps.extractvariables.SetVariableFailed |
500 | Dieser Fehler tritt auf, wenn die Richtlinie den Wert nicht auf eine Variable setzen konnte. Der Fehler tritt in der Regel auf, wenn Sie Werte für mehrere Variablen zuweisen möchten, deren Namen mit den gleichen Begriffen in einem verschachtelten, durch Punkte getrennten Format beginnen. | build |
steps.extractvariables.SourceMessageNotAvailable |
500 | Dieser Fehler tritt auf, wenn auf die Variable message, die im Element Source der Richtlinie angegeben ist, einer der folgenden Punkte zutrifft:
|
build |
steps.extractvariables.UnableToCast |
500 | Dieser Fehler tritt auf, wenn die Richtlinie den extrahierten Wert nicht in eine Variable umwandeln konnte. Dies ist in der Regel der Fall, wenn Sie versuchen, den Wert eines Datentyps auf die Variable eines anderen Datentyps festzulegen. | build |
Bereitstellungsfehler
Diese Fehler können auftreten, wenn Sie einen Proxy bereitstellen, der diese Richtlinie enthält.
Fehlername | Ursache | Beheben |
---|---|---|
NothingToExtract |
Wenn die Richtlinie keines der Elemente URIPath , QueryParam , Header , FormParam , XMLPayload oder JSONPayload enthält, schlägt die Bereitstellung des API-Proxys fehl, weil es nichts zu extrahieren gibt. |
build |
NONEmptyPrefixMappedToEmptyURI |
Dieser Fehler tritt auf, wenn im Namespace -Element unter dem XMLPayload -Element ein Präfix definiert ist, aber kein URI. |
build |
DuplicatePrefix |
Dieser Fehler tritt auf, wenn in der im Element Namespace unter dem Element XMLPayload dasselbe Element mehrmals definiert ist. |
build |
NoXPathsToEvaluate |
Wenn die Richtlinie im Element XMLPayload das Element XPath nicht enthält, schlägt die Bereitstellung des API-Proxys mit diesem Fehler fehl.
|
build |
EmptyXPathExpression |
Wenn die Richtlinie im Element XMLPayload einen leeren XPath -Ausdruck enthält, schlägt die Bereitstellung des API-Proxys fehl. |
build |
NoJSONPathsToEvaluate |
Wenn die Richtlinie im Element JSONPayload das Element JSONPath nicht enthält, schlägt die Bereitstellung des API-Proxys mit diesem Fehler fehl. |
build |
EmptyJSONPathExpression |
Wenn die Richtlinie im Element XMLPayload einen leeren XPath -Ausdruck enthält, schlägt die Bereitstellung des API-Proxys fehl. |
build |
MissingName |
Wenn die Richtlinie das Attribut name in keinem der Richtlinienelemente wie QueryParam , Header , FormParam oder Variable enthält, wo dies erforderlich ist, dann schlägt die Bereitstellung des API-Proxys fehl. |
build |
PatternWithoutVariable |
Wenn in der Richtlinie im Element Pattern keine Variable angegeben ist, schlägt die Bereitstellung des API-Proxys fehl. Das Element Pattern erfordert den Namen der Variablen, in der extrahierte Daten gespeichert werden. |
build |
CannotBeConvertedToNodeset |
Wenn die Richtlinie einen Ausdruck XPath enthält, bei dem der Typ Variable als nodeset definiert ist, der Ausdruck jedoch nicht in ein Knotengruppe konvertiert werden kann, dann wird die Bereitstellung der API bereitgestellt. Proxy schlägt fehl. |
build |
JSONPathCompilationFailed |
Die Richtlinie konnte keinen angegebenen JSON-Pfad kompilieren. | |
InstantiationFailed |
Die Richtlinie konnte nicht instanziiert werden. | |
XPathCompilationFailed |
Wenn das Präfix oder der Wert, der im Element XPath verwendet wird, zu keinem der angegebenen Namespaces in der Richtlinie gehört, schlägt die Bereitstellung des API-Proxys fehl. |
build |
InvalidPattern |
Wenn die Definition des Pattern -Elements in einem der Elemente wie URIPath , QueryParam , Header , FormParam , XMLPayload oder JSONPayload in der Richtlinie ungültig ist, dann schlägt die Bereitstellung des API-Proxys fehl.
|
build |
Fehlervariablen
Diese Variablen werden festgelegt, wenn diese Richtlinie zur Laufzeit einen Fehler auslöst. Weitere Informationen finden Sie unter Was Sie über Richtlinienfehler wissen müssen.
Variablen | Wo | Beispiel |
---|---|---|
fault.name="fault_name" |
fault_name ist der Name des Fehlers, der in der obigen Tabelle Laufzeitfehler aufgeführt ist. Der Fehlername ist der letzte Teil des Fehlercodes. | fault.name = "SourceMessageNotAvailable" |
extractvariables.policy_name.failed |
policy_name ist der benutzerdefinierte Name der Richtlinie, die den Fehler ausgelöst hat. | extractvariables.EV-ParseJsonResponse.failed = true |
Beispiel für eine Fehlerantwort
{ "fault":{ "detail":{ "errorcode":"steps.extractvariables.SourceMessageNotAvailable" }, "faultstring":"request message is not available for ExtractVariable: EV-ParseJsonResponse" } }
Beispiel für eine Fehlerregel
<FaultRule name="Extract Variable Faults"> <Step> <Name>AM-CustomErrorMessage</Name> <Condition>(fault.name = "SourceMessageNotAvailable") </Condition> </Step> <Condition>(extractvariables.EM-ParseJsonResponse.failed = true) </Condition> </FaultRule>
Schemas
Weitere Informationen
API-Nachrichteninhalt mit benutzerdefinierten Analysen analysieren