Что такое конечная точка веб-службы? - PullRequest
299 голосов
/ 21 марта 2012

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

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

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

Ответы [ 6 ]

402 голосов
/ 12 сентября 2013

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

46 голосов
/ 21 марта 2012

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

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


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

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

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

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

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

30 голосов
/ 26 января 2016

Конечной точкой веб-службы является 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 () и т. Д.

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

  • ex: public myObjectType myMethod ( String myVar)

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

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

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

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

13 голосов
/ 29 января 2015

В прошлых проектах, над которыми я работал, конечная точка была относительной собственностью. То есть он может быть или не быть добавлен, но он всегда содержал protocol://host:port/partOfThePath.

Если вызываемая служба имеет динамическую часть, например ?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;

Надеюсь, что проливает свет.

4 голосов
/ 06 октября 2018

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

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

Ссылка: https://smartbear.com/learn/performance-monitoring/api-endpoints/

3 голосов
/ 12 октября 2018

Конечная точка указывается как относительный или абсолютный URL, который обычно приводит к ответу.Этот ответ обычно является результатом процесса на стороне сервера, который может, например, создать строку JSON.Эта строка может затем использоваться приложением, которое сделало вызов конечной точке.Таким образом, в общем случае конечные точки - это заранее определенные точки доступа, используемые в сетях TCP / IP для инициирования процесса и / или возврата ответа.Конечные точки могут содержать параметры, передаваемые в URL-адресе, так как пары значений ключа, несколько пар значений ключа разделяются амперсандом, что позволяет конечной точке вызывать, например, процесс обновления / вставки;поэтому конечным точкам не всегда нужно возвращать ответ, но ответ всегда полезен, даже если он просто указывает на успех или неудачу операции.

...