Co to jest punkt końcowy usługi sieci Web?

323

Załóżmy, że moja usługa internetowa znajduje się pod adresem, http://localhost:8080/foo/mywebservicea mój WSDL jest pod adresem http://localhost:8080/foo/mywebservice?wsdl.

Czy http://localhost:8080/foo/mywebservicepunkt końcowy, tj. Czy jest taki sam jak identyfikator URI mojej usługi sieci Web, czy też gdzie odebrano i odebrano wiadomości SOAP?

Czy mógłbyś mi wyjaśnić, co to jest i jaki jest jego cel?

karakays
źródło

Odpowiedzi:

416

Jest to krótsza i, miejmy nadzieję, wyraźniejsza odpowiedź ... Tak, punktem końcowym jest adres URL, pod którym aplikacja klienta może uzyskać dostęp do usługi. Ta sama usługa internetowa może mieć wiele punktów końcowych, na przykład w celu udostępnienia jej przy użyciu różnych protokołów.

lbalazscs
źródło
8
@ user137717 Nie, strony internetowe nie są usługami internetowymi. Z usług internetowych korzystają przede wszystkim aplikacje, a strony internetowe są przeznaczone głównie dla ludzi.
lbalazscs
4
@ user137717 Punktem końcowym jest adres URL, pod którym aplikacja kliencka może uzyskać dostęp do usługi internetowej. Jeśli nie rozumiesz, co to jest usługa internetowa, przeczytaj na przykład: stackoverflow.com/questions/226108/…
lbalazscs
1
+1 ode mnie i pytanie: dlaczego nie nazwać go (tj. Tak zwanym „punktem końcowym”) „podstawowym URI”? Czy istnieje zasadnicza różnica między „punktem końcowym” a „podstawowym URI”? Dzięki.
Wstrzymano
1
@Withheld Pod względem koncepcyjnym istnieje różnica między punktem końcowym a jego adresem, ale w praktyce zwykle oznacza się adres, ponieważ zazwyczaj trzeba skonfigurować klienta z „punktem końcowym”, aby znaleźć usługę.
lbalazscs
2
@lbalazscs - Adres IP: 8080 / foo / ShoppingWebservice / Toys , Adres IP: 8080 / foo / ShoppingWebservice / Books itp. - Jak nazywa się część / Toys, / Books? Czy są również nazywane punktami końcowymi lub zasobami?
MasterJoe2
47

Zaktualizowana odpowiedź od Piotra w komentarzach:

Jest to „stara terminologia”, użyj bezpośrednio definicji „punktu końcowego” WSDL2 (WSDL2 przetłumaczył „port” na „punkt końcowy”).


Być może znajdziesz odpowiedź w tym dokumencie: http://www.w3.org/TR/wsdl.html

Dokument WSDL definiuje usługi jako kolekcje sieciowych punktów końcowych lub portów. W WSDL abstrakcyjna definicja punktów końcowych i komunikatów jest oddzielona od konkretnego wdrożenia sieci lub powiązań formatu danych. Umożliwia to ponowne wykorzystanie abstrakcyjnych definicji: wiadomości, które są abstrakcyjnymi opisami wymienianych danych, oraz typów portów, które są abstrakcyjnymi zbiorami operacji. Konkretne specyfikacje protokołu i formatu danych dla określonego typu portu stanowią powiązanie wielokrotnego użytku. Port jest definiowany przez powiązanie adresu sieciowego z powiązaniem wielokrotnego użytku, a zbiór portów definiuje usługę. W związku z tym dokument WSDL korzysta z następujących elementów w definicji usług sieciowych:

  • Typy– pojemnik na definicje typów danych przy użyciu niektórych systemów typów (takich jak XSD).
  • Wiadomość - abstrakcyjna, wpisana na maszynie definicja przekazywanych danych.
  • Operacja - streszczenie opisu akcji obsługiwanej przez usługę.
  • Typ portu - abstrakcyjny zestaw operacji obsługiwanych przez jeden lub więcej punktów końcowych.
  • Wiązanie - konkretny protokół i specyfikacja formatu danych dla określonego typu portu.
  • Port– pojedynczy punkt końcowy zdefiniowany jako połączenie powiązania i adresu sieciowego.
  • Usługa - zbiór powiązanych punktów końcowych.

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

Punkt końcowy to punkt połączenia, w którym udostępniane są pliki HTML lub aktywne strony serwera. Punkty końcowe dostarczają informacji potrzebnych do adresowania punktu końcowego usługi sieci Web. Punkt końcowy zapewnia odniesienie lub specyfikację, które są używane do definiowania grupy lub rodziny właściwości adresowania komunikatów i nadawania charakterystyk komunikatów od końca do końca, takich jak odwołania do źródła i miejsca docelowego punktów końcowych, oraz tożsamość komunikatów, aby umożliwić jednolite adresowanie „niezależnych” wiadomości. Punktem końcowym może być komputer PC, PDA lub terminal w punkcie sprzedaży.

Julien
źródło
72
„Punkty końcowe dostarczają informacji potrzebnych do adresowania punktu końcowego usługi sieci Web”. Uwielbiam to zdanie! : D
musaul
2
Jest to „stara terminologia”, użyj bezpośrednio definicji „punktu końcowego” WSDL2 (WSDL2 przetłumaczył „port” na „punkt końcowy”).
Peter Krauss,
34

Punktem końcowym usługi internetowej jest adres URL, którego inny program użyłby do komunikacji z twoim programem. Aby zobaczyć WSDL, który dodajesz ?wsdldo adresu URL punktu końcowego usługi sieci Web.

Usługi internetowe służą do interakcji między programami , a strony internetowe do interakcji między programami .

Więc: Punkt końcowy to: http://www.blah.com/myproject/webservice/webmethod

Dlatego WSDL to: http://www.blah.com/myproject/webservice/webmethod?wsdl


Aby rozwinąć elementy WSDL, zawsze pomocne jest porównanie ich z kodem:

WSDL ma 2 porcje (fizyczne i abstrakcyjne).

Część fizyczna:

Definicje - zmienne - np .: myVar, x, y itd.

Typy - typy danych - np .: int, double, String, myObjectType

Operacje - metody / funkcje - np .: myMethod (), myFunction () itp.

Komunikaty - parametry wejściowe metody / funkcji i typy zwrotów

  • np .: public myObjectType myMethod ( String myVar)

Typy portów - klasy (tzn. Są kontenerem dla operacji) - np. MyClass {} itp.

Część abstrakcyjna:

Wiązanie - łączą się z typami portów i określają wybrany protokół do komunikacji z tą usługą internetową. - protokół jest formą komunikacji (tekst / SMS, kontra telefon kontra e-mail itp.).

Usługa - podaje adres, pod którym inny program może znaleźć twoją usługę internetową (tj. Twój punkt końcowy ).

specialk1st
źródło
5
Odkryłem, że „usługi internetowe służą do interakcji program-program, podczas gdy strony internetowe są do interakcji program-człowiek” to bardzo przydatna wypowiedź, która powstrzymuje mnie od zastanawiania się „dlaczego, do diabła, ludzie nie nazwaliby punktu końcowego jako URL”
Minnie,
14

W poprzednich projektach, nad którymi pracowałem, punkt końcowy był właściwością względną. To znaczy, że może być lub nie zostało dołączone, ale zawsze zawierało protocol://host:port/partOfThePath.

Jeśli wywoływana usługa ma część dynamiczną, na przykład a ?param=dynamicValue, wówczas ta część zostanie dodana do punktu końcowego. Ale wiele razy punkt końcowy może być używany bez zmian.

Ważne jest, aby zrozumieć, czym nie jest punkt końcowy i jak pomaga. Na przykład alternatywnym sposobem przekazywania informacji przechowywanych w punkcie końcowym byłoby przechowywanie różnych części punktu końcowego w osobnych właściwościach. Na przykład:

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

Lub jeśli ten sam host i port w wielu usługach:

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

W takich przypadkach pełny kod URL musiałby zostać utworzony w kodzie jako taki:

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

W umowie można to zapisać jako punkt końcowy jako taki

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

I tak wiele razy zapisywaliśmy punkt końcowy aż do „=” włącznie. To prowadzi do kodu takiego jak ten:

String url = serviceAEndpoint + dynamicValue;

Mam nadzieję, że rzuci trochę światła.

Jose Martinez
źródło
7

Mówiąc najprościej, punkt końcowy to jeden koniec kanału komunikacji. Gdy interfejs API wchodzi w interakcję z innym systemem, punkty kontaktowe tej komunikacji są uważane za punkty końcowe. W przypadku interfejsów API punkt końcowy może zawierać adres URL serwera lub usługi. Każdy punkt końcowy to lokalizacja, z której interfejsy API mogą uzyskiwać dostęp do zasobów potrzebnych do wykonywania ich funkcji.

Interfejsy API działają przy użyciu „żądań” i „odpowiedzi”. Gdy interfejs API zażąda informacji od aplikacji internetowej lub serwera WWW, otrzyma odpowiedź. Miejsce, w którym interfejsy API wysyłają żądania i miejsce zamieszkania zasobu, nazywa się punktem końcowym.

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

Satya
źródło
6

Punkt końcowy jest określony jako względny lub bezwzględny adres URL, który zwykle skutkuje odpowiedzią. Ta odpowiedź jest zwykle wynikiem procesu po stronie serwera, który może na przykład wygenerować ciąg JSON. Ten ciąg może być następnie wykorzystany przez aplikację, która wywołała punkt końcowy. Ogólnie rzecz biorąc, punkty końcowe są predefiniowanymi punktami dostępu, używanymi w sieciach TCP / IP do inicjowania procesu i / lub zwracania odpowiedzi. Punkty końcowe mogą zawierać parametry przekazywane w adresie URL, ponieważ pary wartości klucza, wiele par wartości klucza są oddzielone znakiem ampersand, umożliwiając punktowi końcowemu wywołanie, na przykład, procesu aktualizacji / wstawiania; więc punkty końcowe nie zawsze muszą zwracać odpowiedź, ale odpowiedź jest zawsze przydatna, nawet jeśli jest to tylko wskazanie powodzenia lub niepowodzenia operacji.

Martyn Wynn
źródło