2016-03-24 6 views
1

Ich bin gerade dabei, mich mit Apache Camel vertraut zu machen. Ich habe die Grundlagen des Routings, und jetzt möchte ich untersuchen, wie ich mein eigenes Component erstellen kann, um in einem neuen Projekt, an dem ich gerade arbeite, Einfluss zu nehmen.Apache Camel Component für Drittanbieter-REST-API erstellen?

Es gibt ein kommerzielles SaaS-Produkt eines Drittanbieters, das wir verwenden, und es bietet sowohl eine RESTful-API als auch ein Java-basiertes SDK (das im Wesentlichen die REST-API umschließt). Angesichts dieses Szenarios, was ist der beste Weg, dies zu erreichen? Soll eine neue Component/Endpoint/Producer/Consumer Klasse erstellt werden, die das Java SDK des Service für diese Aufrufe nutzt? Gibt es einen schnelleren Weg, der es mir ermöglichen würde, Camel's zugrunde liegenden REST Component zu verwenden?

Das Ziel ist hier nicht nur, dass das Integrationsstück funktioniert. Es ist auch für mich ein bisschen mehr über Camel Best-Practices zu lernen und meine eigenen Component s zu erstellen, da dies ein größerer Bedarf wird, wenn wir Camel in unsere Umgebung integrieren.

+0

Apache Camel hat bereits eine eigene [REST-Client-Implementierung] (http://camel.apache.org/rest.html). So wie alles, was Sie brauchen, verwenden Sie es einfach, wenn Sie RESTful API doc von Drittanbietern wirklich haben. –

+0

Ja, mir ist das bekannt. Wie ich in der Frage gesagt habe, ist das eigentliche Ziel jedoch, den besten Weg zu lernen, um benutzerdefinierte Camel-Komponenten zu entwickeln. Diese Integration kann ein RESTful-Service sein, andere werden es nicht. – Shadowman

+0

Ihre Hauptfrage ist "Was ist der beste Weg, dies zu erreichen", und diese Antwort ist vielleicht bestehende Komponenten wiederzuverwenden ;-) Wenn Sie lernen möchten, wie man eine Komponente erstellt - dann ist es offtopic auf SO - Sie sollten wahrscheinlich lesen Kamel in Aktion ", oder die großen Bibliotheken der Komponente in den Quellen –

Antwort

0

Ich stimme den anderen Kommentatoren zu. Verwenden Sie die vorhandene REST-Komponente. Das ist der entscheidende Punkt bei der Verwendung von REST/SOAP. Es gibt einen Standard für die Kommunikation mit Remote-Systemen. Sie haben dann mehr Kontrolle über den Umgang mit den Payloads. Als Text JSON/XML oder konvertieren Sie auch in Java POJOs.

In der ESB v1 Ära 2000-2005 der letzte Schrei war alles darüber nightmare-- bleiben eine Wartung endet als Komponenten pro API-- mit leichten und Sie werden viel glücklicher auf lange Sicht =)

sein
+0

Box, PayPal, Amazon AWS, etc. Es gibt benutzerdefinierte Komponenten für alle diese RESTful-Dienste, obwohl es eine REST-Komponente gibt. Dies ist die gleiche Idee. Es gibt genug Komplexität für den Service, den wir anrufen würden, um eine eigene Komponente zu erstellen. – Shadowman

0

Warum sollten Sie eine eigene Komponente erstellen, wenn Sie eine Verbindung zu einer Standard-REST-API herstellen möchten? Camel hat bereits Komponenten für Sie, die Sie wiederverwenden können, und das ist besser. Erstellen Sie neue Komponenten nur, wenn Sie mit neuen Datenformaten, neuen Systemen oder Protokollen arbeiten.

+0

Box, PayPal, Amazon AWS, usw. Es gibt benutzerdefinierte Komponenten für alle diese RESTful-Dienste, obwohl es eine REST-Komponente gibt. Dies ist die gleiche Idee. Es gibt genug Komplexität für den Service, den wir anrufen würden, um eine eigene Komponente zu erstellen. – Shadowman