Was ist der bessere Ansatz für das web-services - Vertrag der ersten oder letzten Vertrag?

StackOverflow https://stackoverflow.com/questions/763827

  •  11-09-2019
  •  | 
  •  

Frage

Was ist der bessere Ansatz für die Entwicklung von web-services;Vertrages ersten oder letzten Vertrag?
Was sind die Vorteile und Nachteile von jedem?

Was hast du Erfahrung mit?

BEARBEITEN Diese Frage ist über die Implementierung eines web-service (Lesen Sie:SEIFE) Die Frage ist, ob die Umsetzung Klassen sollten codiert werden erste und die WSDL-und XSD-schema generiert aus, dass (Vertrags-und Nachname), oder der WSDL-und XSD-schema zuerst geschrieben und die Umsetzung generierte Klassen (contract first)

War es hilfreich?

Lösung

Contract-first "ist die allgemein akzeptierte" best practice.'

Es macht Sie sehr klar, sowohl die Erzeuger und Verbraucher von den service-genau das, was benötigt wird und was zu erwarten ist.Dies wird besonders wichtig, wenn Sie beginnen, versuchen zu konvertieren java-Typen -> xml-Typen.Sie sind auch in der Lage zu Wiederverwendung schemas über verschiedene web-service.

Andere Tipps

Ich habe beide Ansätze.Mein Vorschlag ist zu verwenden contract first schema, aber code first WSDL.

Schreiben Sie eine WSDL-Datei hat eine Menge von seltsamen Nuancen wie Bindungen, ports und so.Ich würde lieber durch tools, anstatt von hand.Es gibt Werkzeuge, um zu helfen, aber keiner von Ihnen sind einfacher als

@WebService
public ...

Zumindest können Sie überprüfen, ob Ihre Bereitstellung.

Für das schema, den ich vorgeschlagen contract first da die XML-Schema-Sprache ist weit reicher als das, was Sie beschreiben in Java.Ein Beispiel habe ich in der Regel geben, die zeigen, dass XML-Schema beschränken die Größe einer Zeichenkette, und wenden Sie ein Muster des regulären Ausdrucks.Dabei, dass in Java und Anmerkungen sieht ein bisschen messier.

Ein weiterer Vorteil ist, tun die schema-als Vertrag erste ist die Anwesenheit von tools zum konvertieren Ihrer schema-Datei in der HTML-Dokumentation.

Das XJC-tool können Sie generieren die erforderlichen class-Dateien.Allerdings würde ich nur empfehlen, dass beim start.

Am Ende sollten Sie die generierte WSDL-Datei und die Arbeit mit, dass anstelle.So können Sie wsimport und stellen Sie sicher, dass die ganze Sache aus dem WSDL-Schema gültig ist.

Sie können die Bereitstellung mit der WSDL-Datei mit der wsdlLocation-Attribut der @WebService-Implementierung und der application server wird fix die Bindung Ihrer Daten, wenn Benutzer Anforderung der WSDL vom server, aber Sie behalten immer noch Ihren Anmerkungen.Ansonsten wird Ihre Anmerkungen erscheinen nicht auf der gewünschten WSDL-Dateien.

Ich vermute, die Antwort ist ein entschiedenes "kommt drauf an."

Das Problem ist, dass, wenn Sie bauen und veröffentlichen Ihr Vertrag, Sie sind an Sie gebunden.Dies macht den Wechsel schwieriger.nicht unmöglich, aber schwieriger.

Auf der anderen Seite, es ist schneller zu Chaos mit dem Vertrag als mit code, wenn Sie bequem mit schemata etc.So können Sie einige inkrementelle änderung des Vertrags.

Arent gibt es auch tools, erzeugen einen code, der das Skelett aus der WSDL?Ich bin fast positiv sind.Wenn ja, könnten Sie gut tun, um machen die schemata der "code" - Element, und generieren code aus.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top