首页 文章

什么是Web服务 endpoints ?

提问于
浏览
278

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

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

你能告诉我它是什么,它的目的是什么?

6 回答

  • 45

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

  • 372

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

    这是de“旧术语”,直接使用WSDL2“endepoint”定义(WSDL2将“port”翻译为“ endpoints ”) .


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

    WSDL文档将服务定义为网络 endpoints 或端口的集合 . 在WSDL中, endpoints 和消息的抽象定义与其具体的网络部署或数据格式绑定分开 . 这允许重用抽象定义:消息,它们是被交换数据的抽象描述,以及作为抽象操作集合的端口类型 . 特定端口类型的具体协议和数据格式规范构成可重用的绑定 . 通过将网络地址与可重用绑定相关联来定义端口,并且端口集合定义服务 . 因此,WSDL文档在网络服务的定义中使用以下元素:类型 - 使用某种类型系统(例如XSD)的数据类型定义的容器 . 消息 - 正在传递的数据的抽象,类型定义 . 操作 - 服务支持的操作的抽象描述 . 端口类型 - 一个或多个 endpoints 支持的一组抽象操作 . 绑定 - 特定端口类型的具体协议和数据格式规范 . 端口 - 单个 endpoints ,定义为绑定和网络地址的组合 . 服务 - 相关 endpoints 的集合 .

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

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

  • 13

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

    Web服务用于程序到程序的交互,而Web页面用于程序到人的交互 .

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

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


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

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

    Physical Portion:

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

    类型 - 数据类型 - 例如:int,double,String,myObjectType

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

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

    • ex:public myObjectType myMethod( String myVar)

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

    Abstract Portion:

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

    服务 - 列出其他程序可以找到您的Web服务的地址(即您的 endpoint ) .

  • 28

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

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

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

    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;
    

    在 Contract 中,这可以作为 endpoints 存储

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

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

    String url = serviceAEndpoint + dynamicValue;
    

    希望能有所启发 .

  • 1

    简而言之, endpoints 是通信信道的一端 . 当API与另一个系统交互时,触摸点这种沟通被认为是终点 . 对于API, endpoints 可以包含服务器或服务的URL . 每个 endpoints 都是API可以访问执行其功能所需资源的位置 .

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

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

  • 2

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

相关问题