什么是Web服务端点?

kar*_*ays 311 web-services terminology definition endpoint

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

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

你能否向我解释它是什么以及它的目的是什么?

lba*_*scs 409

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

  • @ user137717不,网站不是网络服务.Web服务主要由应用程序使用,而网站主要用于人类. (7认同)
  • @ user137717端点是客户端应用程序可以访问Web服务的URL.如果您不了解Web服务是什么,请阅读以下内容:http://stackoverflow.com/questions/226108/what-is-a-web-service-in-plain-english (4认同)
  • @lbalazscs - http://IP-Address:8080/foo/ShoppingWebservice/Toys, http://IP-Address:8080/foo/ShoppingWebservice/Books 等 - /Toys, /Books 部分叫什么?它们也称为端点或资源吗? (3认同)
  • @Withheld 从概念上讲,端点及其地址之间存在差异,但实际上通常是指地址,因为通常您需要使用“端点”配置客户端来查找服务。 (2认同)

Jul*_*ien 46

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

这是de"old术语",直接使用WSDL2 "endepoint"定义(WSDL2将"port"翻译为"端点").


也许您在本文档中找到答案: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或销售点终端.

  • "端点提供了解决Web服务端点所需的信息." 一定要爱这句话!:d (67认同)
  • 这是de"old术语",直接使用[WSDL2"endepoint"定义](http://www.w3.org/TR/wsdl20/#Endpoint)(WSDL2将"port"翻译为"端点"). (2认同)

spe*_*1st 31

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

Web服务用于程序到程序的交互,而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()等.

消息 - 方法/函数输入参数和返回类型

  • 例如:public myObjectType myMethod(String myVar)

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

摘要部分:

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

服务 - 列出了另一个程序可以找到您的Web服务(即您的端点)的地址.

  • 我发现"Web服务是用于程序到程序的交互,而网页是用于程序到人的交互"是非常有用的声明,以阻止我迷惑"为什么人们不会只是将终点称为URL" (4认同)

Jos*_*nez 14

在我过去的项目中,端点是一个相对属性.也就是说它可能会或可能没有附加,但它总是包含protocol://host:port/partOfThePath.

如果被调用的服务具有动态部分,例如a ?param=dynamicValue,那么该部分将被添加到端点.但很多时候端点可以按原样使用而无需修改.

重要的是要了解端点不是什么以及它如何帮助.例如,传递存储在端点中的信息的另一种方法是将端点的不同部分存储在单独的属性中.例如:

hostForServiceA=someIp
portForServiceA=8080
pathForServiceA=/some/service/path
hostForServiceB=someIp
portForServiceB=8080
pathForServiceB=/some/service/path
Run Code Online (Sandbox Code Playgroud)

或者,如果跨多个服务的主机和端口相同:

host=someIp
port=8080
pathForServiceA=/some/service/path
pathForServiceB=/some/service/path
Run Code Online (Sandbox Code Playgroud)

在这些情况下,需要在您的代码中构建完整的URL:

String url = "http://" + host + ":" + port + pathForServiceA  + "?" + dynamicParam + "=" + dynamicValue;
Run Code Online (Sandbox Code Playgroud)

在合同中,这可以作为端点存储

serviceAEndpoint=http://host:port/some/service/path?dynamicParam=
Run Code Online (Sandbox Code Playgroud)

并且是的,我们多次将端点存储到并包括'='.这导致代码如下:

String url = serviceAEndpoint + dynamicValue;
Run Code Online (Sandbox Code Playgroud)

希望能有所启发.


Sat*_*tya 6

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

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

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


Mar*_*ynn 6

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