2017-01-10 1 views
1

Ich rufe einen HTTP-Endpunkt an, bevor meine Nachricht den apikit: Router erreicht.Aufrufen eines HTTP-Endpunkts vor dem Anrufen des APIKit-Routers

Wenn die Nachricht den apikit: Router erreicht, hat sie alle ursprünglichen HTTP-Header verloren. Aus diesem Grund ist der Router nicht in der Lage, die beabsichtigte Methode herauszufinden.

Eigentlich bin ich in der Lage, die eingehenden Eigenschaften in einer Sitzungsvariablen zu kopieren, nach dem HTTP-Aufruf kann ich sie als ausgehende Eigenschaft wiederherstellen. Dann habe ich meinen api-Router in einem anderen Fluss, so dass die ausgehende Eigenschaft wieder in die eingehende Eigenschaft umgewandelt wird. Diese Lösung funktioniert gut, aber der Fluss sieht ziemlich hässlich aus. (wie ich diese Kopie für etwa 10 Header tun musste)

Gibt es eine bessere Problemumgehung? Ich versuche auch zu vermeiden, diese Header manuell zu behandeln.

Antwort

2

Umschließen Sie den HTTP-Aufruf innerhalb des Enrichers, es wird die HTTP-Eingangseigenschaften und die Nutzdaten des ursprünglichen Aufrufs beibehalten. So,

<enricher target="#[flowVars.resultOfInnerHTTP] source="#[payload]"> 
    <http:request...../> 
</enricher> 
<apikit:router.../> 
Verwandte Themen