2016-10-18 1 views
1

Ich habe ein altes Projekt, in dem SOAP-Webservices verfügbar gemacht werden. Jetzt habe ich eine Anforderung, sie in Ruhe umzuwandeln und entsprechend zu benutzen.SOAP to Rest Service mit Adapter

Kann ich eine Implementierung wie Jersey zur Verfügung haben, um diese Seifen-Services zu konsumieren und dann das gleiche wie REST zu veröffentlichen?

Antwort

0

Dies ist ein häufiges Problem beim Umgang mit älteren APIs. Da REST kein Protokoll ist per Definition können Sie implementieren entweder:

  • Protocol Pattern Bridging. Es ist ein gängiges SOA-Muster, mit dem Sie zwischen verschiedenen Protokollen wechseln können, indem Sie einen Bridging-Broker als Vermittler verwenden. Der Broker enthält die Transformationslogik. Sie können more information here finden. Solche Brücken sind in den meisten ESBs und EAI-Middlewares verfügbar.

  • Datenformat Transformation Pattern. Es wandelt zwischen Datenformaten um und Sie können es verwenden, um von XML in das von Ihnen verwendete REST-Format zu transformieren. Sie können es implementieren, indem Sie eine interne Servicelogik, Serviceagenten oder einen dedizierten Umwandlungsdienst hinzufügen. You can see more here.. Sie können Jersey verwenden, um eine REST-Fassade zu erstellen und intern von XML zu transformieren oder die Logik in jedem Dienst zu erstellen. Data Format Transformation Pattern

Es hängt wirklich von der Größe Ihres API und der Art der Lösung, die Sie benötigen. Für wenige Dienste wähle ich den zweiten Ansatz - es ist einfacher, aber ein wenig mehr gekoppelt, während ich bei vielen Diensten den ersten Ansatz wählen würde, der meiner Meinung nach die Transformationslogik besser abstrahiert, aber möglicherweise zusätzliche Middleware und Aufwand erfordert .

+0

Ich habe wenige Dienste und möchte für den zweiten Ansatz gehen. Aber können Sie bitte etwas Licht auf Beispiele der Verwendung von Rest Facade to SOAP für die Datentransformation werfen. – skanda

+0

@skanda, Sie haben gefragt, ob Sie Jersey dafür verwenden können - und ja, Sie können. In der Tat können Sie jedes Framework verwenden, um dies zu implementieren. Die Lösung, die ich zur Verfügung gestellt habe, ist technologieunabhängig und ich hoffe, meine Antwort hat dir geholfen. Leider kann ich aufgrund der relativ weit gefassten Frage, die Sie gestellt haben, kein spezifisches Codebeispiel angeben, wenn Sie das benötigen. Wenn Sie mit Jersey arbeiten, können Sie eine neue REST-API implementieren, die die vorhandene SOAP-API mit JAX-WS nutzt (siehe Dokumentation hier http://docs.oracle.com/javaee/5/tutorial/doc/bnayn.html#bnayx). und transformiert jeden Dienst gemäß einer Vorlage oder basierend auf benutzerdefinierter Logik. –

Verwandte Themen