Що таке кінцева точка веб-служби?


323

Скажімо, мій веб-сервіс знаходиться за адресою, http://localhost:8080/foo/mywebserviceа мій WSDL http://localhost:8080/foo/mywebservice?wsdl.

Чи http://localhost:8080/foo/mywebserviceє кінцевою точкою, тобто це те саме, що URI мого веб-сервісу або де повідомлення SOAP отримували та скасовувались?

Чи можете ви, будь ласка, пояснити мені, що це таке і яка його мета?

Відповіді:


416

Це коротша і, сподіваємось, зрозуміліша відповідь ... Так, кінцева точка - це URL-адреса, за якою клієнтська програма може отримати доступ до вашої послуги. Один і той же веб-сервіс може мати декілька кінцевих точок, наприклад, щоб зробити його доступним за допомогою різних протоколів.


8
@ user137717 Ні, веб-сайти не є веб-службами. Веб-сервіс в основному використовується додатками, тоді як веб-сайти в основному для людей.
lbalazscs

4
@ user137717 Кінцева точка - це URL-адреса, за якою клієнтська програма може отримати доступ до веб-служби. Якщо ви не розумієте , що веб - сервіс, прочитайте, наприклад , це: stackoverflow.com/questions/226108 / ...
lbalazscs

1
+1 у мене теж питання: чому б просто не назвати його (тобто так зване "кінцева точка") "базовим URI"? Чи є принципова різниця між "кінцевою точкою" та "базовим URI"? Дякую.
Затримано

1
@Withheld Концептуально існує різниця між кінцевою точкою та її адресою, але на практиці зазвичай мається на увазі адреса, тому що зазвичай для налаштування послуги потрібно налаштувати клієнта з "кінцевою точкою".
lbalazscs

2
@lbalazscs - IP-адреса: 8080 / foo / ShoppingWebservice / Іграшки , IP-адреса: 8080 / foo / ShoppingWebservice / Книги тощо - Як називається / Іграшки, / Книги? Їх також називають кінцевими точками або ресурсами?
MasterJoe2

47

Оновлена ​​відповідь від Петра в коментарях:

Це де "стара термінологія", використовуйте прямо визначення WSDL2 "кінцевої точки" (WSDL2 перекладається "порт" на "кінцеву точку").


Можливо, ви знайдете відповідь у цьому документі: http://www.w3.org/TR/wsdl.html

Документ WSDL визначає послуги як колекції мережевих кінцевих точок або портів. У WSDL абстрактне визначення кінцевих точок та повідомлень відокремлено від конкретних мережевих розгортань або прив'язки формату даних. Це дозволяє повторно використовувати абстрактні визначення: повідомлення, які є абстрактними описами даних, що обмінюються, та типи портів, які є абстрактними наборами операцій. Конкретні специфікації протоколу та формату даних для певного типу порту є обов'язковими для повторного використання. Порт визначається асоціацією мережевої адреси з багаторазовим прив'язкою, а колекція портів визначає послугу. Отже, документ WSDL використовує такі елементи у визначенні мережевих служб:

  • Типи - контейнер для визначень типів даних за допомогою деякої системи типів (наприклад, XSD).
  • Повідомлення - абстрактне, набране визначення даних, що передаються.
  • Операція - абстрактний опис дії, підтримуваного службою.
  • Тип порту - абстрактний набір операцій, підтримуваний однією або кількома кінцевими точками.
  • Прив’язка - конкретна специфікація протоколу та формату даних для певного типу порту.
  • Порт - єдина кінцева точка, визначена як комбінація прив'язки та мережевої адреси.
  • Сервіс - сукупність пов'язаних кінцевих точок.

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

Кінцева точка - це точка з'єднання, де відкриваються HTML-файли або активні сторінки сервера. Кінцеві точки надають інформацію, необхідну для адреси кінцевої точки веб-служби. Кінцева точка надає посилання або специфікацію, яка використовується для визначення групи або сімейства властивостей адреси повідомлень та надання характеристик повідомлення в кінці, наприклад, посилання на джерело та призначення кінцевих точок, а також ідентифікацію повідомлень, щоб забезпечити рівномірність адресація "незалежних" повідомлень. Кінцевою точкою може бути ПК, КПК або термінал продажу.


72
"Кінцеві точки надають інформацію, необхідну для адреси кінцевої точки веб-служби." Треба любити це речення! : D
musaul

2
Це де "стара термінологія", використовуйте прямо визначення WSDL2 "кінцевої точки" (WSDL2 перекладається "порт" на "кінцеву точку").
Пітер Краусс

34

Кінцева точка веб-служби - це URL-адреса, яку інша програма використовуватиме для спілкування з вашою програмою. Щоб побачити WSDL, ви додасте ?wsdlдо URL-адреси кінцевої точки веб-служби.

Веб-сервіси призначені для взаємодії між програмою , а веб-сторінки - для взаємодії програма-людина .

Отже: Кінцева точка: http://www.blah.com/myproject/webservice/webmethod

Отже, WSDL є: http://www.blah.com/myproject/webservice/webmethod?wsdl


Для подальшого розширення елементів WSDL я завжди вважаю корисним порівняти їх з кодом:

WSDL має 2 частини (фізичну та абстрактну).

Фізична порція:

Визначення - змінні - наприклад: myVar, x, y тощо.

Типи - типи даних - наприклад: int, double, String, myObjectType

Операції - методи / функції - наприклад: myMethod (), myFunction () тощо.

Повідомлення - вхідні параметри методу / функції та типи повернення

  • наприклад: громадський myObjectType MyMethod ( Рядок MYVAR)

Портипи - класи (тобто вони є контейнером для операцій) - наприклад: MyClass {} тощо.

Абстрактна порція:

Прив’язка - вони підключаються до типів портів і визначають обраний протокол для спілкування з цією веб-службою. - протокол - це форма комунікації (тому текст / SMS, проти телефону проти електронної пошти тощо).

Сервіс - це перелік адреси, де інша програма може знайти вашу веб-службу (тобто вашу кінцеву точку ).


5
Я виявив, що "веб-сервіси призначені для взаємодії між програмою та програмою, а веб-сторінки - для взаємодії між програмою і людиною". Це дуже корисна заява, щоб зупинити мене спантеличено, "чому б чорт не став просто називати кінцеву точку URL-адресою"
Мінні

14

У минулих проектах, над якими я працював, кінцева точка була відносною властивістю. Тобто це може бути або не може бути додане, але воно завжди містило protocol://host:port/partOfThePath.

Якщо служба, яка викликається, мала до неї динамічну частину, наприклад, a ?param=dynamicValue, ця частина буде додана до кінцевої точки. Але багато разів кінцева точка може бути використана як така, що не потребує внесення змін.

Важливо розуміти, що не є кінцевою точкою і як це допомагає. Наприклад, альтернативним способом передачі інформації, що зберігається в кінцевій точці, було б зберігання різних частин кінцевої точки в окремих властивостях. Наприклад:

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

Або якщо один і той же хост і порт у кількох службах:

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

У цих випадках у вашому коді потрібно створити повну URL-адресу як таку:

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

У договорі це може зберігатися як кінцева точка як така

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

І так, ми багато разів зберігали кінцеву точку до і включаємо '='. Це призводить до такого коду:

String url = serviceAEndpoint + dynamicValue;

Сподіваюся, що проливає трохи світла.


7

Простіше кажучи, кінцева точка - це один кінець каналу зв'язку. Коли API взаємодіє з іншою системою, точки дотику цього повідомлення вважаються кінцевими точками. Для API, кінцева точка може містити URL-адресу сервера або послуги. Кожна кінцева точка - це місце, з якого API можуть отримати доступ до ресурсів, необхідних для виконання своєї функції.

API працюють за допомогою "запитів" та "відповідей". Коли API вимагає інформації від веб-програми чи веб-сервера, він отримає відповідь. Місце, в якому API надсилають запити, і де живе ресурс, називається кінцевою точкою.

Довідка: https://smartbear.com/learn/performance-monitoring/api-endpoints/


6

Кінцева точка задається як відносна або абсолютна URL-адреса, що зазвичай призводить до відповіді. Ця відповідь зазвичай є результатом процесу на стороні сервера, який, наприклад, може створити рядок JSON. Потім цей рядок може використовуватися додатком, який здійснив виклик до кінцевої точки. Отже, загалом кінцеві точки - це заздалегідь визначені точки доступу, які використовуються в мережах TCP / IP для ініціювання процесу та / або повернення відповіді. Кінцеві точки можуть містити параметри, передані в межах URL-адреси, оскільки пари ключових значень, декілька пар ключових значень розділені амперсандом, що дозволяє кінцевій точці викликати, наприклад, процес оновлення / вставки; тому кінцеві точки не завжди повинні повертати відповідь, але відповідь завжди корисна, навіть якщо це лише для вказівки на успіх чи невдачу операції.


0

Кінцева точка - це URL-адреса веб-сервісу. Кінцеві точки - це також розподілений API .

Кінцева точка протоколу простого об’єкта доступу (SOAP) - це URL-адреса . Він визначає розташування вбудованої служби HTTP, де слухач веб-служб слухає вхідні запити .

Довідка: https://www.ibm.com/support/knowledgecenter/SSSHYH_7.1.0.4/com.ibm.netcoolimpact.doc/dsa/imdsa_web_netcool_impact_soap_endpoint_c.html

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.