我一直在阅读 OAuth 相关的内容,它总是提到“端点”。那么究竟什么是端点?
加油,伙计们 :) 我们可以通过例子来简化它:
/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}
将会有两个不同的端点 - 一个用于检索(即"cRud"缩写中的 "R"),另一个用于更新(即"crUd"中的 "U")。
这就是所有,真的很简单!
它是通信渠道的一端,通常表示为服务器或服务的URL。
端点是用于与API通信的URL模式。
GET /item/{id}
和PUT /item/{id}
是不同的端点呢?因此,一个端点不仅仅是一个“URL模式”,还应该包括HTTP请求方法。 - nbro端点是网络上访问服务、工具或应用程序的“连接点”。在软件世界中,任何正在运行并“监听”连接的软件应用程序都使用端点作为“前门”。当您想要连接到应用程序/服务/工具以交换数据时,您会连接到其端点。
简短回答: "终端是一种抽象,模拟系统可以通过其发送或接收消息的消息通道的末端" (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
要获取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请求来连接到端点。
术语的终点是专注于创建请求的URL。 从不同的角度看以下示例:
/api/groups/6/workings/1
/api/v2/groups/5/workings/2
/api/workings/3