ChatGPT解决这个技术问题 Extra ChatGPT

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


T
Tomeg

来吧伙计们:)我们可以通过示例来做的更简单:

/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”缩写),另一个用于更新(如“crUd”)

就是这样,真的就这么简单!


赞成提到不同的 HTTP 方法定义了不同的端点。
马太福音 20:16 KJV - 所以最后一个应该是第一个 (..) :)
太糟糕了,Stack Exchange 没有将此答案显示为第一个或第二个答案。对我来说,它在列表中排名靠后,绝对是最好的,因为我不知道是否将一整套动作和控制器视为端点,或者单个控制器中的单个动作定义了端点。这个答案告诉我是后者。
@Tomeg 一个问题,如果我必须让 URL 达到相同的实现,它们是被认为是相同的端点还是不同的?例如 GET public/v1/operation 和 internal/v1/Operation 都命中相同的实现,那么我们可以将它们视为相同的端点吗?
@Parth 端点通常是应该由请求调用的,你作为接口提供给 API 消费者的东西——你告诉他们使用的东西。所以在这个例子中,你的实现处理了两个端点(因为你为你的 API 消费者/用户提供了两种调用方式)。但我只是写它是“一般”,如果有人坚持称端点有点不同(例如,在你的例子中有人会坚持说这是一个端点),那么你说“好吧,无论如何,这些是只是文字!我很高兴我们只是相互理解“
P
Paul Osman

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

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

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


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

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


那么,URL 和端点有什么区别呢?您说“通常这将表示为 URL”,那么在某些情况下它不是由 URL 表示的吗?那么,在这些情况下它代表什么?此外,在上面的答案中,他们说端点可以具有相同的 URL,但 HTTP 方法不同。这个解释显然与你的不一致。您应该编辑您的答案以澄清这一点。
L
Lemuel Uhuru

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


您能否举例说明“URL 模式”的含义?那么 API 到底是什么?此外,如果端点只是一个 URL 模式,那么为什么 this answerGET /item/{id} 是与 PUT /item/{id} 不同的端点?那么,端点不仅仅是“URL 模式”,还应该包括 HTTP 请求方法?
D
Daniel Serodio

在 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 请求来连接到端点。


J
Justin Franks

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


如果这个答案的目标是澄清问题,那么用更加模糊的“连接点”来定义端点远非一个好主意。
C
Cleber Jorge Amaral

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

I
IKriKan

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

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


i
ismael

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

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

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


N
NicholasKyleHoffman

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

GET:从 API 端点检索数据。

PUT:通过 API 更新数据 - 类似于 POST,但更多关于更新信息。

POST:将数据发送到 API。

删除:从给定 API 中删除数据。

补丁:更新数据。