341 Stimmen

Was ist ein Webdienst-Endpunkt?

Nehmen wir an, mein Webdienst befindet sich unter http://localhost:8080/foo/mywebservice und meine WSDL ist unter http://localhost:8080/foo/mywebservice?wsdl .

Ist http://localhost:8080/foo/mywebservice ein Endpunkt, d. h. ist es derselbe wie der URI meines Webdienstes oder wo werden die SOAP-Nachrichten empfangen und nicht weitergeleitet?

Könnten Sie mir bitte erklären, was das ist und welchen Zweck es hat?

436voto

lbalazscs Punkte 16934

Dies ist eine kürzere und hoffentlich klarere Antwort... Ja, der Endpunkt ist die URL, unter der Ihr Dienst von einer Client-Anwendung aufgerufen werden kann. Ein und derselbe Webdienst kann mehrere Endpunkte haben, zum Beispiel um ihn über verschiedene Protokolle verfügbar zu machen.

46voto

Julien Punkte 3489

Aktualisierte Antwort, von Peter in den Kommentaren:

Dies ist de "alte Terminologie", verwenden Sie direkt die WSDL2 "Endpunkt" Definition (WSDL2 übersetzt "port" mit "Endpunkt").


Vielleicht finden Sie eine Antwort in diesem Dokument: http://www.w3.org/TR/wsdl.html

Ein WSDL-Dokument definiert Dienste als Sammlungen von Netzwerkendpunkten oder Ports. In WSDL wird die abstrakte Definition von Endpunkten und Nachrichten von ihrer konkreten Netzwerkbereitstellung oder den Datenformatbindungen getrennt. Dies ermöglicht die Wiederverwendung abstrakter Definitionen: Nachrichten, die abstrakte Beschreibungen der ausgetauschten Daten sind, und Porttypen, die abstrakte Sammlungen von Operationen sind. Die konkreten Protokoll- und Datenformatspezifikationen für einen bestimmten Porttyp bilden eine wiederverwendbare Bindung. Ein Port wird definiert, indem eine Netzadresse mit einer wiederverwendbaren Bindung verknüpft wird, und eine Sammlung von Ports definiert einen Dienst. Daher verwendet ein WSDL-Dokument die folgenden Elemente bei der Definition von Netzwerkdiensten:

  • Typen - ein Container für Datentypdefinitionen unter Verwendung eines Typsystems (z. B. XSD).
  • Nachricht - eine abstrakte, typisierte Definition der zu übermittelnden Daten.
  • Operation - eine abstrakte Beschreibung einer Aktion, die vom Dienst unterstützt wird.
  • Porttyp - ein abstrakter Satz von Operationen, die von einem oder mehreren Endpunkten unterstützt werden.
  • Binding - eine konkrete Protokoll- und Datenformatspezifikation für einen bestimmten Anschlusstyp.
  • Port - ein einzelner Endpunkt, der als Kombination aus einer Bindung und einer Netzwerkadresse definiert ist.
  • Dienst - eine Sammlung von zusammenhängenden Endpunkten.

http://www.ehow.com/info_12212371_definition-service-endpoint.html

Der Endpunkt ist ein Verbindungspunkt, an dem HTML-Dateien oder aktive Serverseiten offengelegt werden. Endpunkte stellen die Informationen bereit, die zum Ansprechen eines Webdienst-Endpunkts erforderlich sind. Der Endpunkt stellt eine Referenz oder Spezifikation bereit, die zur Definition einer Gruppe oder Familie von Nachrichtenadressierungseigenschaften verwendet wird und End-to-End-Nachrichtenmerkmale wie Referenzen für die Quelle und das Ziel von Endpunkten und die Identität von Nachrichten angibt, um eine einheitliche Adressierung von "unabhängigen" Nachrichten zu ermöglichen. Der Endpunkt kann ein PC, ein PDA oder ein Point-of-Sale-Terminal sein.

36voto

specialk1st Punkte 1557

Ein Webdienst-Endpunkt ist die URL, die ein anderer Programm für die Kommunikation mit Ihrem Programm verwenden würden. Um die WSDL anzuzeigen, fügen Sie Folgendes hinzu ?wsdl auf die URL des Webdienst-Endpunkts.

Webdienste sind für Programm zu Programm Interaktion, während Webseiten für Programm-zu-Mensch Interaktion.

Also: Endpunkt ist: http://www.blah.com/myproject/webservice/webmethod

Deshalb, WSDL ist: http://www.blah.com/myproject/webservice/webmethod?wsdl


Um die Elemente einer WSDL näher zu erläutern, finde ich es immer hilfreich, sie mit Code zu vergleichen:

Eine WSDL besteht aus 2 Teilen (physisch und abstrakt).

Physischer Teil:

Definitionen - Variablen - z.B.: myVar, x, y, etc.

Typen - Datentypen - z.B.: int, double, String, myObjectType

Operationen - Methoden/Funktionen - z.B. myMethod(), myFunction(), etc.

Meldungen - Methode/Funktions-Eingabeparameter und Rückgabetypen

  • zum Beispiel: öffentlich myObjectType myMethod( Zeichenfolge myVar)

Porttypes - Klassen (d.h. sie sind ein Container für Operationen) - z.B. MyClass{}, etc.

Abstrakter Teil:

Binding - diese stellen eine Verbindung zu den Porttypen her und definieren das gewählte Protokoll für die Kommunikation mit diesem Webdienst. - Ein Protokoll ist eine Form der Kommunikation (also Text/SMS vs. Telefon vs. E-Mail etc.).

Service - hier wird die Adresse aufgeführt, unter der ein anderes Programm Ihren Webdienst finden kann (z. B. Ihr Endpunkt ).

14voto

Jose Martinez Punkte 10698

In früheren Projekten, an denen ich gearbeitet habe, war der Endpunkt eine relative Eigenschaft. Das heißt, er kann angehängt worden sein oder auch nicht, aber er enthielt immer die protocol://host:port/partOfThePath .

Wenn der aufgerufene Dienst einen dynamischen Teil hat, zum Beispiel eine ?param=dynamicValue dann würde dieser Teil dem Endpunkt hinzugefügt werden. In vielen Fällen kann der Endpunkt jedoch so verwendet werden, wie er ist, ohne dass er geändert werden muss.

Es ist wichtig zu verstehen, was ein Endpunkt nicht ist und wie er hilft. Ein alternativer Weg, die in einem Endpunkt gespeicherten Informationen weiterzugeben, wäre zum Beispiel, die verschiedenen Teile des Endpunkts in separaten Eigenschaften zu speichern. Zum Beispiel:

hostForServiceA=someIp
portForServiceA=8080
pathForServiceA=/some/service/path
hostForServiceB=someIp
portForServiceB=8080
pathForServiceB=/some/service/path

Oder wenn derselbe Host und Port für mehrere Dienste verwendet wird:

host=someIp
port=8080
pathForServiceA=/some/service/path
pathForServiceB=/some/service/path

In diesen Fällen müsste die vollständige URL in Ihrem Code als solche konstruiert werden:

String url = "http://" + host + ":" + port + pathForServiceA  + "?" + dynamicParam + "=" + dynamicValue;

Im Vertrag kann dies als Endpunkt wie folgt gespeichert werden

serviceAEndpoint=http://host:port/some/service/path?dynamicParam=

Und ja, oft haben wir den Endpunkt bis einschließlich des "=" gespeichert. Dies führte zu Code wie diesem:

String url = serviceAEndpoint + dynamicValue;

Ich hoffe, das bringt etwas Licht ins Dunkel.

8voto

Satya Punkte 548

Einfach ausgedrückt, ist ein Endpunkt das eine Ende eines Kommunikationskanals. Wenn eine API mit einem anderen System interagiert, werden die Berührungspunkte dieser Kommunikation als Endpunkte betrachtet. Bei APIs kann ein Endpunkt eine URL eines Servers oder Dienstes sein. Jeder Endpunkt ist der Ort, von dem aus APIs auf die Ressourcen zugreifen können, die sie für die Ausführung ihrer Funktion benötigen.

APIs arbeiten mit "Anfragen" und "Antworten". Wenn eine API Informationen von einer Webanwendung oder einem Webserver anfordert, erhält sie eine Antwort. Der Ort, an den APIs Anfragen senden und an dem sich die Ressource befindet, wird als Endpunkt bezeichnet.

Referenz: https://smartbear.com/learn/performance-monitoring/api-endpoints/

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X