Что такое конечная точка веб-службы?

323

Допустим, мой веб-сервис находится по адресу, http://localhost:8080/foo/mywebserviceа мой WSDL - по адресу http://localhost:8080/foo/mywebservice?wsdl.

Является http://localhost:8080/foo/mywebserviceли конечная точка, т. Е. Такой же, как URI моей веб-службы, или где SOAP-сообщения получены и распакованы?

Не могли бы вы объяснить мне, что это такое и какова цель этого?

karakays
источник

Ответы:

416

Это более короткий и, надеюсь, более четкий ответ ... Да, конечная точка - это URL-адрес, по которому клиентская программа может получить доступ к вашей службе. Одна и та же веб-служба может иметь несколько конечных точек, например, чтобы сделать ее доступной с использованием разных протоколов.

lbalazscs
источник
8
@ user137717 Нет, сайты не являются веб-сервисами. Веб-сервис в основном используется приложениями, а веб-сайты в первую очередь предназначены для людей.
lbalazscs
4
@ user137717 Конечная точка - это URL-адрес, по которому ваш веб-сервис может быть доступен клиентскому приложению. Если вы не понимаете, что такое веб-сервис, прочитайте, например, это: stackoverflow.com/questions/226108/…
lbalazscs
1
+1 от меня тоже, и вопрос: почему бы просто не назвать его (то есть так называемой «конечной точкой») «базовым URI»? Есть ли принципиальная разница между «конечной точкой» и «базовым URI»? Спасибо.
Удержано
1
@Withheld Концептуально существует разница между конечной точкой и ее адресом, но на практике обычно подразумевается адрес, потому что обычно вам нужно настроить клиент с «конечной точкой» для поиска службы.
lbalazscs
2
@lbalazscs - IP-адрес: 8080 / foo / ShoppingWebservice / Toys , IP-адрес: 8080 / foo / ShoppingWebservice / Books и т. д. - Как называется раздел / Toys, / Books? Их также называют конечными точками или ресурсами?
MasterJoe2
47

Обновленный ответ от Питера в комментариях:

Это де "старая терминология", используйте напрямую определение " endepoint" WSDL2 (WSDL2 переводится как "порт" в "конечную точку").


Возможно, вы найдете ответ в этом документе: http://www.w3.org/TR/wsdl.html

Документ WSDL определяет службы как наборы сетевых конечных точек или портов. В WSDL абстрактное определение конечных точек и сообщений отделено от их конкретного сетевого развертывания или привязок формата данных. Это позволяет повторно использовать абстрактные определения: сообщения, которые являются абстрактными описаниями обмениваемых данных, и типы портов, которые являются абстрактными наборами операций. Конкретные спецификации протокола и формата данных для определенного типа порта составляют повторно используемую привязку. Порт определяется путем связывания сетевого адреса с повторно используемой привязкой, а набор портов определяет службу. Следовательно, документ WSDL использует следующие элементы в определении сетевых служб:

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

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

Конечная точка - это точка подключения, где отображаются файлы HTML или страницы активного сервера. Конечные точки предоставляют информацию, необходимую для адресации конечной точки веб-службы. Конечная точка предоставляет ссылку или спецификацию, которая используется для определения группы или семейства свойств адресации сообщений и предоставления сквозных характеристик сообщений, таких как ссылки на источник и пункт назначения конечных точек, а также идентификационные данные сообщений для обеспечения единообразия. адресация «независимых» сообщений. Конечной точкой может быть ПК, КПК или терминал торговой точки.

Julien
источник
72
«Конечные точки предоставляют информацию, необходимую для адресации конечной точки веб-службы». Должен любить это предложение! : D
Musaul
2
Это де "старая терминология", используйте напрямую определение " endepoint" WSDL2 (WSDL2 переводится как "порт" в "конечную точку").
Питер Краусс
34

Конечная точка веб-службы - это URL-адрес, который другая программа будет использовать для связи с вашей программой. Чтобы увидеть WSDL, вы добавляете ?wsdlURL-адрес конечной точки веб-службы.

Веб-сервисы предназначены для взаимодействия между программами , а веб-страницы - для взаимодействия между людьми .

Итак: Конечная точка это: 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 () и т. Д.

Сообщения - входные параметры метода / функции и типы возврата

  • например: public myObjectType myMethod ( строка myVar)

Porttypes - классы (т.е. они являются контейнером для операций) - например: MyClass {} и т. Д.

Абстрактная часть:

Связывание - они подключаются к типам портов и определяют выбранный протокол для связи с этим веб-сервисом. - протокол является формой общения (текст / SMS, телефон или электронная почта и т. д.).

Сервис - здесь указывается адрес, по которому другая программа может найти ваш веб-сервис (т. Е. Конечную точку ).

specialk1st
источник
5
Я нашел «Web - сервисы для взаимодействия программа-к-программе, в то время как веб - страницы для программы к человеку взаимодействия» является очень полезным заявление , чтобы остановить меня озадачивает « почему, черт возьми , не люди просто называют конечную точку , как 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/

Satya
источник
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

kyakya
источник