Workflow Manager 1.0 - HTTP-Aktivitäten

 

Workflow-Manager 1.0 stellt eine Sammlung von Messagingaktivitäten zur Verfügung, die das Senden ausgehender Nachrichten an HTTP-Dienste ermöglichen.Im Allgemeinen stellt jede Aktivität ein HTTP-Verb dar.Dieses Thema bietet einen Überblick über diese Aktivitäten.

Inhalt dieses Themas

  • Allgemeine Eigenschaften der HTTP-Aktivität

  • HTTP-Aktivitäten

    • Angeben des Inhalts für die Anforderung und die Antwort

    • HTTP-Header in "DynamicValue"

Allgemeine Eigenschaften der HTTP-Aktivität

Die Argumente der HTTP-Aktivitäten sind sehr ähnlich, unterscheiden sich jedoch abhängig davon, was relevant für den HTTP-Vorgang ist, den die Aktivität verkapselt.Die Argumente jeder Aktivität ermöglichen das Angeben der Kernsammlung der Parameter, die festgelegt werden müssen, damit ein HTTP-Dienst erfolgreich aufgerufen werden kann. Beispiele:

  • URI des Diensts

  • Anforderungsheader und -inhalte

  • Antwortheader und -inhalte

  • Rückgabestatuscode

  • Sicherheitstoken für sichere Aufrufe

Die folgenden Tabelle listet die Eigenschaften und Argumente auf, die für alle HTTP-Aktivitäten gemeinsam gelten.

Eigenschaft

Beschreibung

InArgument<string> Uri

Der URI der Anforderung.

InArgument<DynamicValue> RequestHeaders

Die HTTP-Header der Anforderungsnachricht.

InArgument<SecurityToken> SecurityToken

Ermöglicht ein auf Ansprüchen basierendes Delegationsmuster mithilfe der GetS2SSecurityToken-Aktivität.

Hinweis: Dieser Vorgang konfiguriert die HTTP-Aktivität für die Verwendung von JsonWebToken (JWT) und OAuth2-Trägertoken. Er kann daher nur in Workflows verwendet werden, die Bestandteil eines mithilfe von S2S gesicherten Bereichs sind.Die Ansprüche des Aufrufers, der den Workflow instanziiert (d. h., der Aktivierungsnachricht) werden verwendet, und das ausgehende Token wird mithilfe des ausgehenden Signaturzertifikats signiert, das für die Bereitstellung konfiguriert wurde.

Boolescher Wert RetryOnConnectionFailure

Aktiviert automatische Wiederholungsversuche für Anforderungen, bei denen aufgrund eines Timeouts oder Verbindungsverlusts ein Fehler auftritt, mithilfe von Exponential Backoff.

ActivityFunc<HttpStatusCode, DynamicValue, DynamicValue, bool> HttpErrorHandler

Ermöglicht die Verarbeitng der Wiederholungsversuchlogik basierend auf einem bestimmten HttpStatusCode, Antwortheadern und Antwortinhalten.

OutArgument<DynamicValue> ResponseHeaders

Die HTTP-Header der Antwortnachricht.

OutArgument ResponseContent

Der Inhalt der Antwortnachricht.

OutArgument<HttpStatusCode> HttpStatusCode

Der HttpStatusCode der Antwortnachricht.

HTTP-Aktivitäten

Workflow-Manager 1.0 stellt eine Sammlung von Messagingaktivitäten zur Verfügung, die das Senden ausgehender Nachrichten an HTTP-Dienste ermöglichen.Im Allgemeinen stellt jede Aktivität ein HTTP-Verb dar.In der folgenden Tabelle werden die in Workflow-Manager 1.0 verfügbaren HTTP-Aktivitäten aufgelistet.Alle diese Aktivitäten verwenden die allgemeine Sammlung von Argumenten und Eigenschaften, die unter Allgemeine Eigenschaften der HTTP-Aktivität beschrieben werden.Neben diesen allgemeinen Eigenschaften und Argumenten besitzen einige Aktivitäten weitere Argumente. Diese werden in der Spalte Other Arguments beschrieben.

Aktivitätsdaten

Beschreibung

Weitere Argumente

HttpGet

GET für einen HTTP-Dienst.

HttpPost

POST für einen HTTP-Dienst.

InArgument RequestContent

HttpPut

PUT für einen HTTP-Dienst.

InArgument RequestContent

HttpDelete

DELETE für einen HTTP-Dienst.

HttpMerge

Header der Spitzenklasse für einen Updatevorgang mithilfe eines eTags

InArgument RequestContent

InArgument<String> Etag

Angeben des Inhalts für die Anforderung und die Antwort

Beim Bereitstellen des Inhalts für die Anforderung und die Antwort können Sie ein primitives Objekt (z. B. eine Zeichenfolge, eine Zahl oder ein Datum) verwenden, das als Anforderungsinhalt serialisiert wird, oder einen DynamicValue.

HTTP-Aktivitäten sind eng in "DynamicValue" integriert: Für Anforderungen wird der bereitgestellte "DynamicValue" automatisch in seine JSON-Darstellung serialisiert und als Anforderungsinhalt für den HTTP-Aufruf festgelegt.Für Antworten wird der vom Server zurückgegebene Inhalt in einen DynamicValue geladen(dies funktioniert nur, wenn die Antwort als gültiger JSON-Wert zurückgegeben wird).

Das folgenden Codebeispiel zeigt die Verwendung von HttpGet zum Abrufen von Informationen aus Netflix in einen DynamicValue und die Verwendung einiger seiner Eigenschaften in einer Aktivität:

Variable<DynamicValue> response = new Variable<DynamicValue>();
Variable<string> name = new Variable<string>();
Variable<string> synopsis = new Variable<string>();
Variable<string> releaseYear = new Variable<string>();
Variable<string> result = new Variable<string>();

Activity sequence = new Sequence
{
    Variables = { response, name, synopsis, releaseYear, result },
    Activities =
    {
        // get the data from Netflix
        new HttpGet
        {
            Uri = "http://odata.netflix.com/Catalog/Titles?$filter=Name%20eq%20'The%20Name%20of%20The%20Rose'",
            ResponseContent = new OutArgument<DynamicValue>(response)
        },

        // read some properties from the result
        new GetDynamicValueProperties
        {
            Source = response,
            Properties = 
            {
                { "d/results(0)/Name", new OutArgument<string>(name) },
                { "d/results(0)/Synopsis", new OutArgument<string>(synopsis) },
                { "d/results(0)/ReleaseYear", new OutArgument<string>(releaseYear) }
            }
        },

        // create a new string with the properties read the previous step
        new FormatString
        {
            Format = "{0} ({1}): {2}",
            Arguments = 
            {
                new InArgument<string>(name),
                new InArgument<string>(releaseYear),
                new InArgument<string>(synopsis),
            },
            Result = result
        }
    }
};

Hinweis

Die DynamicValue-Integration in HTTP-Aktivitäten wird für Dienste unterstützt, die Inhalt als JSON akzeptieren und zurückgeben.AtomPub wird bei der DynamicValue-Integration zurzeit noch nicht unterstützt.

HTTP-Header in "DynamicValue"

HTTP-Header werden als ein DynamicValue angegeben.Zum Festlegen von Headern für eine Aktivität müssen Sie nur einen DynamicValue erstellen und übergeben, der die Header enthält, die Sie verwenden möchten.

Variable<DynamicValue> requestHeaders = new Variable<DynamicValue>();
Variable<DynamicValue> responseHeaders = new Variable<DynamicValue>();


var sequence = new Sequence
{
    Variables = { requestHeaders, responseHeaders },
    Activities =
    {
        // setup the headers
        new BuildDynamicValue
        {
            Result = requestHeaders,
            Properties = 
            {
                { "Accept", new InArgument<string>("text/plain") },
                { "Accept-Charset", new InArgument<string>("utf-8") },
            }
        },

        // get the data from Netflix
        new HttpGet
        {
            Uri = "https://contoso.com?var1=val",
            RequestHeaders = requestHeaders,
            ResponseHeaders = responseHeaders,
        },
    }
};