2017-06-10 2 views
1

Die Optionen zum Konfigurieren des GetHTTP-Prozessors sehen so aus, als ob sie für die Verbindung mit einer API eines Drittanbieters funktionieren würden. Ich muss den Benutzernamen (verfügbar), Passwort (verfügbar) und einen dritten String-Wert, der den Namen der Datenbank darstellt, senden. Wenn die Antwort (json) zurückkommt, enthält sie eine Sitzungskennung, die ich später für andere API (javascript) -Aufrufe benötigen werde. Es gibt eine "neue Eigenschaft" -Option für diesen Prozessor, von der ich dachte, dass ich sie vielleicht für die Datenbank-Zeichenkette verwenden könnte, sie scheint jedoch nach einem bestimmten Eigenschaftstyp zu suchen. Die Warnmeldung, die ich bekomme, besagt: "Datenbank" validiert gegen "Mydatenbankname" ist ungültig, weil "Datenbank" keine unterstützte Eigenschaft ist. Irgendein Rat? Wenn die Antwort zurückgegeben wird, wie würde ich dann die Sitzungs-ID für alle nachfolgenden API-Aufrufe beibehalten?NiFi: Welchen Prozessor würde ich verwenden, um eine Verbindung zu einer API eines Drittanbieters herzustellen, die 3 Berechtigungsnachweiselemente benötigt?

Antwort

5

GetHTTP akzeptiert dynamische Eigenschaften, die als HTTP-Request-Header an den Server übergeben werden. Ich hatte kein Problem mit dem Hinzufügen einer dynamischen Eigenschaft namens database in NiFi 1.2.0, aber ich glaube, das ist eine relativ neue Ergänzung, die möglicherweise in früheren Versionen nicht verfügbar war. InvokeHTTP könnte eine Alternative sein.

Die Wiederverwendung der Sitzungs-ID erfordert das Analysieren der Sitzungs-ID aus der Antwort und in ein NiFi-Flowfile-Attribut. Abhängig von der Art des Inhalts, den Sie zurückbekommen, wird dies normalerweise mit einem ExtractText, EvaluateJsonPath oder einem ähnlichen Prozessor durchgeführt.

Nachfolgende GetHTTP- oder InvokeHTTP-Prozessoren sollten so konfiguriert werden, dass sie über eine dynamische Eigenschaft für die Sitzungs-ID verfügen. Der Wert für die Verwendung der NiFi-Ausdruckssprache für das Attribut flowfile lautet ${sessionid}.

+1

'GetHTTP' ist ein älterer Prozessor und wurde ursprünglich für die Übertragung von NiFi-spezifischen Daten zwischen Instanzen entwickelt. Während es wahrscheinlich immer noch gut funktioniert, ist 'InvokeHTTP' der neuere und voll funktionsfähigere Prozessor für diesen Anwendungsfall. – Andy

+0

@ James/@ Andy, Vielen Dank für Ihren Rat. Ich werde mit dieser Info arbeiten. Nachdem ich gesehen habe, was für mich funktioniert, werde ich meine Ergebnisse hier veröffentlichen. – plditallo

Verwandte Themen