什么是端点?


172

我一直在阅读有关OAuth的信息,它一直在谈论端点。端点到底是什么?


2
我一直在这样的旧帖子上绊绊,无法理解为什么这种帖子过去总是被推荐,但是如果这是当前的帖子,则肯定会被否决。
tnkh

6
也许有人赞成,因为其他人也有这个问题。这不是重点吗?
Nora McDougall-Collins

Answers:


74

到目前为止,所有发布的答案都是正确的,端点只是通信渠道的一端。对于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客户端时遇到任何困难,请发布更多问题。


5
为什么不只将它(即所谓的“端点”)称为“基本URI”?“端点”和“基本URI”之间有根本区别吗?谢谢。
2015年

@Xlsx取决于实现。一个示例请求可能是GET“ / users?name = admin”或“ / users / admin”。您可以选择两者之一,也可以两者都不做。
布拉克'18

2
由于OP要求“通用端点”,而不是OAuth,因此没有用。我现在很困惑。
凌晨

311

来吧大家:)我们可以通过示例来简化它:

/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 etrieving(如“C - [R UD”的缩写),而另一个用于ù pdating(如在“CR Ù d”)

就是这么简单!


25
因提到不同的HTTP方法定义了不同的端点而表示敬意。
Boyan Kushlev

4
马太福音20:16
KJV-

2
太糟糕了,Stack Exchange不会将此答案显示为第一个或第二个答案。对我来说,它排在最后,绝对是最好的,因为我不知道是否将整个动作和控制器集合视为端点,或者单个控制器中的单个动作定义了端点。这个答案告诉我是后者。
ThorkilVærge'19

非常不幸,OP没有选择此答案,这是最佳答案。

1
@Parth通常是请求应该调用的端点,即您提供给API使用者的接口的东西-告诉他们使用的东西。因此,在本示例中,您的实现将处理两个端点(因为您为API使用者/用户提供了两种调用方式的方式)。但是我只是写道,这通常是“一般的”,如果有人坚持称端点有点不同(例如,在您的示例中有人坚持认为这是一个端点),那么您说“好吧,不管怎么说,这些都是只是言语!我很高兴我们能彼此理解”
Tomeg

43

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



12

终点OpenID身份验证术语中的是您将身份验证请求发送(POST)到的URL。

Google身份验证API的摘录

要获取Google OpenID端点,请通过将GET或HEAD HTTP请求发送到https://www.google.com/accounts/o8/id来执行发现。使用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请求来连接到端点。


7

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


4

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

简而言之,资源或端点是远程托管应用程序的入口点,使用户可以通过HTTP协议与其进行通信。


4

否决权与我无关,但与来源无关:(甚至没有任何理由说明这一点。


每个端点都是API可以从其访问执行其功能所需资源的位置。也就是说,API发送请求的地方以及资源所在的地方称为端点。

一个好的来源


2

该术语的终点是专注于创建请求的URL。从不同角度看以下示例:

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

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


1

简短的答案:“端点是对消息通道末端进行建模的抽象,系统可以通过该通道发送或接收消息”(易卜生,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

0

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

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

阅读更多...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.