Messaging mit dem Service Bus ermöglicht die...

Read more

Sebastian Meyer, Microsoft & SAP...

Read more

Für Entwickler, Architekten, Projektleiter und...

Read more

In der Welt der Softwareentwicklung ist die...

Read more

QUIBIQ spendet für den guten Zweck – und für...

Read more

Eine bestimmte Antwort auf einen HTTP Request zu...

Read more

In einer Welt, die von stetigem Wandel geprägt...

Read more

In einem unserer Kundenprojekte, war das Ziel eine...

Read more

QUIBIQ Hamburg wird mit dem Hamburger...

Read more

Zwei Tage lang wurde vom 14.-15.11 wieder das...

Read more

How-to: REST Service mit BizTalk 2016 bereitstellen (Teil 1)

In diesem zweiteiligen Blogpost möchten wir zuerst zeigen, wie man mit BizTalk-Boardmitteln einen RESTful Service bereitstellen kann, der auf POST Json empfängt. In Teil 2 zeigen wir, wie man diesen Service per HTTPS bereitstellen kann. Unsere Beispiele beruhen auf BizTalk 2016.

Folgende Schritte sind zu tun:

1. Erstellen einer One Way Receive Location vom Type WCF-Custom; dort als URI die gewünschte URL, z.B. localhost/JSONReceive/POSTEndpoint.svc angeben.

2. Unter „Binding“ webHttpBinding auswählen:

 

 

3. Unter „Behavior“ als EndpointBehavior „webHttp“ hinzugefügt werden; dort kann man bei Bedarf die Hilfe aktivieren, damit unter localhost/JSONReceive/POSTEndpoint.svc/help der Endpunkt zu sehen ist:

 

 

4. Für die BizTalk Host Usergruppe muss in der Kommandozeile das URLACL setzen, damit die URL für die Usergruppe reserviert wird:

netsh http add urlacl url=http://+:80/JSONReceive/POSTEndpoint.svc user="<GruppenName>"

5. Der Endpunkt sollte jetzt unter localhost/JSONReceive/POSTEndpoint.svc/TwoWayMethod JSON entgegennehmen.

Aus dem JSON wird in der Receive Location XML, standardmäßig mit dem Rootknoten „root“. Im Folgenden Screenshot ist zu sehen, wie der Request auf der rechten Seite aussieht und welches XML dann im BizTalk ankommt:

 

 

 

Da der Rootknoten wenig aussagekräftig ist und keinen Namespace enthält, sollte jetzt eine Pipeline benutzt werden, die den Rootknoten umbenennt und einen Namespace hinzufügt.

Hierbei fiel uns auf, dass die Pipeline “ESB Add Namespace and Remove Namespace” leider einen Encoding-Fehler hat, sodass Sonderzeichen “öäüß” als Fragezeichen übertragen werden.

Stattdessen sollte man kann man eine eigene Pipeline schreiben; als Vorlage dient dazu  www.codeproject.com/Articles/146182/Change-Namespace-of-a-Message-in-a-Custom-Pipeline.

Folgende Blogposts haben uns dabei geholfen:

  • „Receive JSON with BizTalk using WCF webHTTP with XML Conversion, No Code Required” von Thomas Canter (https://phidiax.com/blog/post/receive-json-with-biztalk-using-wcf-webhttp-with-xml-conversion-no-code-required)
  • „REST Start Kit for BizTalk Server” von Mikael Håkansson (http://blogical.se/blogs/mikael/archive/2012/05/28/rest-start-kit-for-biztalk-server.aspx)

 

Hilko Krüger (11/7/2017)

 

© QUIBIQ GmbH · Imprint · Data protection