2. Webschnittstellen für die Cloud, IoT & Co
Anforderungen
HTTP(s) in Firewalls/Routern offen
SOAP: zu kompliziert
RESTful Webservices
hohe Dynamik der Schnittstellen
Simples Protokoll
3. Webschnittstellen für die Cloud, IoT & Co
Adapter
HTTP In
Dateisystem
„ENTERPRISE SERVICE BUS“ (ESB)
HTTP Out
HTTP Eingangsadapter
Empfang und Verarbeitung von Requests
synchron / asynchron
Senden von Antworten
HTTP Ausgangsadapter
Aufruf von URLs (RESTful Webservices)
Verarbeitung der Antwort
Dateisystemadapter (Verbindungsart HTTP)
Download von Dateien
5. Webschnittstellen für die Cloud, IoT & Co
Ohne
BASIC-Authentication
Fixer Token im HTTP-Header
<HEADER xmlns:tns="xyz">
<tns:Credentials>
<tns:Ticket>iuozug7zoih9023uid8</tns:Ticket>
</tns:Credentials>
</HEADER>
Token von Login-Service im HTTP-Header
…
HTTP Ausgangsadapter | Authentisierung
14. Webschnittstellen für die Cloud, IoT & Co
<?xml version="1.0" encoding="UTF-8"?>
<REQUEST URL="/transconnect/clientservices/rest-api/order" METHOD="POST"
CLIENTHOST="127.0.0.1" CLIENTADDRESS="127.0.0.1" PRINCIPAL="restuser" ENCODING="UTF-8">
<HEADER>…</HEADER>
<BODY CONTENT-TYPE="text/xml">
<Client>Dummy</Client>
<JSON> <!– automatisch in XML konvertiert -->
<ORDER>
<ITEM>
<POSITION>10</POSITION>
<AMOUNT>10</AMOUNT>
<MATNR>A12345</MATNR>
</ITEM>
<ID>4711</ID>
</ORDER>
</JSON>
</BODY>
</REQUEST>
HTTP Eingangsadapter | TransConnect Nachricht
15. Webschnittstellen für die Cloud, IoT & Co
HTTP Eingangsadapter
TransConnect®
Mapping/
Transforming
HTTP
Eingangsadapter
TransConnect API
XML
XML
Request
Eingangs- und
Ausgangsmappings
HTTP
Response
17. Webschnittstellen für die Cloud, IoT & Co
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:java="http://xml.apache.org/xslt/java">
<xsl:output method="text" encoding="UTF-8" mediatype="text/xml" />
<xsl:template match="/">
<xsl:copy-of select="//content/*" />
</xsl:template>
</xsl:stylesheet>
HTTP Eingangsadapter | Ausgangsmapping für XML
18. Webschnittstellen für die Cloud, IoT & Co
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:java="http://xml.apache.org/xslt/java">
<xsl:output method="text" encoding="UTF-8" mediatype="application/json" />
<!-- we must create a Null-Transformer to convert from a node in the input document to XML text -->
<xsl:variable name="factory" select="java:javax.xml.transform.TransformerFactory.newInstance()" />
<xsl:variable name="transformer" select="java:newTransformer( $factory )" />
<xsl:variable name="buffer" select="java:java.io.ByteArrayOutputStream.new()" />
<xsl:template match="/">
<!-- convert XML node to XML text -->
<xsl:value-of select="java:transform( $transformer, java:javax.xml.transform.dom.DOMSource.new( //content/* ),
java:javax.xml.transform.stream.StreamResult.new( $buffer ) )" />
<xsl:variable name="xml" select="java:java.lang.String.new( java:toByteArray( $buffer ), 'UTF-8' )" />
<!-- convert XML text to JSON text -->
<xsl:value-of select="java:com.sqlag.tc.json.XML.toJSONObject( $xml )" />
</xsl:template>
</xsl:stylesheet>
HTTP Eingangsadapter | Ausgangsmapping für JSON
19. Dateisystem
Webschnittstellen für die Cloud, IoT & Co
Dateisystemausgangsadapter, Verbindungstyp HTTP(s)
Service (Basis-) URL
http://localhost:8080/service
21. Webschnittstellen für die Cloud, IoT & Co
Zusammenfassung
HTTP In
Dateisystem
„ENTERPRISE SERVICE BUS“ (ESB)
HTTP Out
RESTful Webservices
Bereitstellen
Aufrufen
Verschiedene Authentisierungsvarianten
Payload: XML oder JSON
Download von Dateien
22. Kontakt
SQL Projekt AG Fon +49 351 876 19 0
Franklinstraße 25a Fax +49 351 876 19 99
01069 Dresden Mail: transconnect@sql-ag.de
TRANSCONNECT®
22 Jahre Kompetenz in Business Integration