什么是Web服务端点?

时间:2012-03-21 15:11:12

标签: web-services terminology definition endpoint

假设我的网络服务位于http://localhost:8080/foo/mywebservice,我的WSDL位于http://localhost:8080/foo/mywebservice?wsdl

http://localhost:8080/foo/mywebservice是一个端点,即它是否与我的Web服务的URI相同,或者是收到和解组的SOAP消息的位置?

请您解释一下它是什么以及它的目的是什么?

7 个答案:

答案 0 :(得分:392)

这是一个更短,更有希望更清晰的答案...... 是的,端点是客户端应用程序可以访问您的服务的URL。相同的Web服务可以有多个端点,例如,为了使其可以使用不同的协议。

答案 1 :(得分:45)

更新的答案,来自Peter的评论:

  

这是“旧术语”,直接使用WSDL2 "endepoint" definition(WSDL2翻译为“端口”到“端点”)。


也许您在本文档中找到答案:http://www.w3.org/TR/wsdl.html

  

WSDL文档将服务定义为网络端点或端口的集合。在WSDL中,端点和消息的抽象定义与其具体的网络部署或数据格式绑定分开。这允许重用抽象定义:消息,它们是被交换数据的抽象描述,以及作为抽象操作集合的端口类型。特定端口类型的具体协议和数据格式规范构成可重用绑定。通过将网络地址与可重用绑定相关联来定义端口,并且端口集合定义服务。因此,WSDL文档在网络服务的定义中使用以下元素:

     
      
  • 类型 - 使用某种类型系统(例如XSD)的数据类型定义的容器。
  •   
  • 消息 - 正在传达的数据的抽象类型定义。
  •   
  • 操作 - 服务支持的操作的抽象描述。
  •   
  • 端口类型 - 一个或多个端点支持的一组抽象操作。
  •   
  • 绑定 - 特定端口类型的具体协议和数据格式规范。
  •   
  • 端口 - 单个端点,定义为绑定和网络地址的组合。
  •   
  • 服务 - 相关端点的集合。
  •   

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

  

端点是公开HTML文件或活动服务器页面的连接点。端点提供寻址Web服务端点所需的信息。端点提供了一个引用或规范,用于定义消息寻址属性的组或系列,并提供端到端消息特征,例如端点源和目标的引用,以及允许统一的消息标识寻址“独立”信息。端点可以是PC,PDA或销售点终端。

答案 2 :(得分:30)

Web服务端点是另一个程序用于与您的程序通信的URL。要查看WSDL,请将?wsdl添加到Web服务端点URL。

Web服务用于程序到程序的交互,而网页则用于程序到人类的交互。

所以: 端点是:http://www.blah.com/myproject/webservice/webmethod

因此, WSDL是:http://www.blah.com/myproject/webservice/webmethod?wsdl

为了进一步扩展WSDL的元素,我总是发现将它们与代码进行比较是有帮助的:

WSDL有2个部分(物理和抽象)。

物理部分:

定义 - 变量 - 例如:myVar,x,y等

类型 - 数据类型 - ex:int,double,String,myObjectType

操作 - 方法/功能 - 例如:myMethod(),myFunction()等

消息 - 方法/功能输入参数&返回类型

  • ex:public myObjectType myMethod( String myVar)

Porttypes - 类(即它们是操作的容器) - ex:MyClass {}等。

摘要部分:

绑定 - 这些连接到端口类型并定义用于与此Web服务通信的所选协议。   - 协议是一种通信形式(所以文本/短信,电话与电子邮件等)。

服务 - 列出其他程序可以找到您的网络服务的地址(即您的端点)。

答案 3 :(得分:13)

在过去的项目中,端点是一个相对属性。也就是说它可能会或可能没有附加,但它总是包含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 :(得分:3)

简单地说,端点是通信通道的一端。当API与另一个系统交互时,此通信的接触点被视为端点。对于API,端点可以包括服务器或服务的URL。每个端点都是API可以访问其执行功能所需资源的位置。

API使用“请求”和“响应”来工作。当API从Web应用程序或Web服务器请求信息时,它将收到响应。 API发送请求的地方以及资源所在的地方称为端点。

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

答案 5 :(得分:1)

将端点指定为通常导致响应的相对或绝对URL。该响应通常是服务器端进程的结果,该进程可以例如生成JSON字符串。然后,该字符串可以由调用端点的应用程序使用。因此,一般而言,端点是预定义的访问点,在TCP / IP网络中使用它们来启动进程和/或返回响应。端点可以包含在URL内传递的参数,因为键值对,多个键值对之间用&符号分隔,从而允许端点调用例如更新/插入过程;因此,端点不一定总是需要返回响应,但是响应总是很有用,即使只是表明操作成功或失败也是如此。

答案 6 :(得分:0)

端点是Web服务的URL。端点也是distributed API

简单对象访问协议(SOAP)的端点是URL 。它确定内置HTTP服务在 Web服务侦听器侦听传入请求的位置。

参考:https://www.ibm.com/support/knowledgecenter/SSSHYH_7.1.0.4/com.ibm.netcoolimpact.doc/dsa/imdsa_web_netcool_impact_soap_endpoint_c.html