【问题标题】:What is an Endpoint?什么是端点?
【发布时间】:2011-01-08 12:28:08
【问题描述】:

我一直在阅读有关 OAuth 的内容,并且一直在谈论端点。究竟什么是端点?

【问题讨论】:

    标签: authentication oauth terminology endpoint


    【解决方案1】:

    它是通信通道的一端,因此通常表示为服务器或服务的 URL。

    【讨论】:

      【解决方案2】:

      端点,在 OpenID 身份验证术语中,是您向其发送 (POST) 身份验证请求的 URL。

      摘自Google authentication API

      要获取 Google OpenID 端点,请通过向 https://www.google.com/accounts/o8/id 发送 GET 或 HEAD HTTP 请求来执行发现。使用 GET 时,我们建议将 Accept 标头设置为“application/xrds+xml”。 Google 返回一个包含 OpenID 提供程序端点 URL 的 XRDS 文档。端点地址注释为:

      <Service priority="0">
      <Type>http://specs.openid.net/auth/2.0/server</Type> 
      <URI>{Google's login endpoint URI}</URI> 
      </Service>
      

      获得 Google 端点后,您可以向其发送身份验证请求,并指定适当的参数(可在链接页面上找到)。您可以通过向 URL 发送请求或发出 HTTP POST 请求来连接到端点。

      【讨论】:

        【解决方案3】:

        到目前为止发布的所有答案都是正确的,端点只是通信通道的一端。对于 OAuth,您需要关注三个端点:

        1. 临时凭证请求 URI(在 OAuth 1.0a 社区规范中称为请求令牌 URL)。这是您发送请求以从服务器/服务提供商获取未经授权的请求令牌的 URI。
        2. 资源所有者授权 URI(在 OAuth 1.0a 社区规范中称为用户授权 URL)。这是您指示用户授权从临时凭证请求 URI 获得的请求令牌的 URI。
        3. 令牌请求 URI(在 OAuth 1.0a 社区规范中称为访问令牌 URL)。这是您发送请求的 URI,以便将授权的请求令牌交换为访问令牌,然后可以使用访问令牌获取对受保护资源的访问权限。

        希望这有助于解决问题。愉快地学习 OAuth!如果您在实施 OAuth 客户端时遇到任何困难,请发布更多问题。

        【讨论】:

        • 为什么不把它(即所谓的“端点”)称为“基本 URI”? “端点”和“基本 URI”之间有根本区别吗?谢谢。
        • @Xlsx 取决于实现。一个示例请求可能是获取“/users?name=admin”或“/users/admin”。你可以做一个或另一个,或者两者都做,或者都不做。
        • 没有用,因为 OP 要求提供“通用端点”,而不是专门的 OAuth。我现在很困惑。
        • @Withheld 一个端点是一个 URI + 一个请求方法(GET、POST、PUT、DELETE 等)
        【解决方案4】:

        端点是用于与 API 通信的 URL 模式。

        【讨论】:

          【解决方案5】:

          术语端点最初用于 WCF 服务。后来即使这个词被用作 API 资源的同义词,REST 建议将这些 URI(理解 HTTP 动词并遵循 REST 架构的 URI[s])称为“资源”。

          简而言之,资源或端点是一种远程托管应用程序的入口点,允许用户通过 HTTP 协议与其通信。

          【讨论】:

            【解决方案6】:

            来吧,伙计们:)我们可以做的更简单,举个例子:

            /this-is-an-endpoint
            /another/endpoint
            /some/other/endpoint
            /login
            /accounts
            /cart/items
            

            当放在域下时,它看起来像:

            https://example.com/this-is-an-endpoint
            https://example.com/another/endpoint
            https://example.com/some/other/endpoint
            https://example.com/login
            https://example.com/accounts
            https://example.com/cart/items
            

            可以是http也可以是https,我们在例子中使用https。

            对于不同的 HTTP 方法,端点也可以不同,例如:

            GET /item/{id}
            PUT /item/{id}
            

            将是两个不同的端点——一个用于r检索(如“cRud”的缩写),另一个用于u pdating(如“crUd”)

            就这么简单!

            【讨论】:

            • 赞成提到不同的 HTTP 方法定义了不同的端点。
            • 马太福音 20:16 KJV - 所以最后一个应该是第一个 (..) :)
            • 太糟糕了,Stack Exchange 没有将此答案显示为第一个或第二个答案。对我来说,它在列表中排名靠后,绝对是最好的,因为我不知道是否将一整套动作和控制器视为端点,或者单个控制器中的单个动作定义了端点。这个答案告诉我是后者。
            • @Parth 端点通常是应该被请求调用的,你作为接口提供给 API 消费者的东西——你告诉他们使用的东西。那么在这个例子中,你的实现处理了两个端点(因为你为你的 API 消费者/用户提供了两种调用方式)。但我只是写它是“一般”,如果有人坚持称端点有点不同(例如在你的例子中有人会坚持说这是一个端点),那么你说“好吧,无论如何,这些是只是文字!我很高兴我们只是相互了解”
            • 这很简单明了,不过我有一个问题吗?什么是端点? :p 我想说的是,乍一看,端点看起来像是 Web 服务器中的文件。这是真的?也可以是其他东西吗?谢谢
            【解决方案7】:

            端点是通过网络访问的服务、工具或应用程序的“连接点”。在软件世界中,任何正在运行并“侦听”连接的软件应用程序都将端点用作“前门”。当您想连接到应用程序/服务/工具以交换数据时,您连接到其端点

            【讨论】:

              【解决方案8】:

              术语的端点是专注于创建请求的 URL。 从不同的角度来看下面的例子:

              /api/groups/6/workings/1
              /api/v2/groups/5/workings/2
              /api/workings/3
              

              他们可以清楚地访问给定 API 中的相同源。

              【讨论】:

                【解决方案9】:

                简短的回答:“端点是对系统可以发送或接收消息的消息通道末端建模的抽象概念”(Ibsen, 2010)。


                端点与 URI(消歧)

                端点与 URI 不同。一个原因是因为一个 URI 可以驱动到不同的端点,比如一个端点到 GET,另一个到 POST,等等。示例:

                @GET /api/agents/{agent_id} //Returns data from the agent identified by *agent_id*
                @PUT /api/agents/{agent_id} //Update data of the agent identified by *agent_id*
                

                端点与资源(消歧)

                端点与资源不同。一个原因是因为不同的端点可以驱动到相同的资源。示例:

                @GET /api/agents/{agent_id} @Produces("application/xml") //Returns data in XML format
                @GET /api/agents/{agent_id} @Produces("application/json") //Returns data in JSON format
                

                【讨论】:

                  【解决方案10】:

                  API 代表应用程序编程接口。这是您的应用程序通过端点与其他应用程序交互的一种方式。相反,您可以为您的应用程序构建一个 API,供其他开发人员通过 HTTP 方法使用/连接,这些方法是 RESTful。具象状态转移 (REST):

                  • GET:从 API 端点检索数据。
                  • PUT:通过 API 更新数据 - 类似于 POST,但更多关于更新信息。
                  • POST:将数据发送到 API。
                  • DELETE:从给定 API 中删除数据。
                  • 补丁:更新数据。

                  【讨论】:

                    猜你喜欢
                    • 2016-03-26
                    • 1970-01-01
                    • 1970-01-01
                    • 2020-03-11
                    • 2018-04-12
                    • 2012-04-06
                    • 2019-03-22
                    • 2010-10-19
                    • 2013-10-16
                    相关资源
                    最近更新 更多