与API相关的回调URL是什么?


98

我一直在搜寻网络,似乎无法绕过回调URL的想法。就我而言,我有一些必须定义自己的回调URL。流行的是“默认回调URL”。这到底是什么?你能用简单的英语举例吗?

Answers:


67

完成后,回调URL将由您正在调用的API方法调用。所以如果你打电话

POST /api.example.com/foo?callbackURL=http://my.server.com/bar

然后,/foo完成后,它将请求发送到http://my.server.com/bar。该请求的内容和方法将有所不同-请查看您正在访问的API的文档。


1
如果回调URL设置不正确,是否会导致错误?
user3768495'2

@ user3768495我希望不会,但这将取决于API的实现。从理论上讲,它可以使回调成为内部事务的一部分,如果回调不返回2xx响应,则回滚原始请求所做的任何更改。
埃里克·斯坦

我是否需要在/api.example.com/foo中发送对POST请求的响应?
阿披耶特(Abhijeet)

@Abhijeet你永远不需要。如果适当的话,请加入回应。
埃里克·斯坦

另外,你们认为我们应该在客户端或服务器端保留回调URL?
哈特里

29

认为它是一封信。有时您会收到一封信,说要您填写表格,然后将表格寄回预先寄出的信封中,该信封位于存放该表格的原始信封中。

填写完表格后,将其放入提供的返回信封中并寄回。

callbackUrl类似于返回信封。您基本上是说我正在向您发送此数据。完成后,我将在这个callbackUrl上等待您的回复。因此,API将处理您发送的数据,然后查看回调以向您发送响应。

这很有用,因为有时您可能需要花费很多时间来处理一些数据,并且让调用方等待响应是没有意义的。例如,假设您的API允许用户向其发送文档并对其进行病毒扫描。然后您发送报告。扫描可能需要3分钟。用户不能等待3分钟。因此,您确认您已获得文档,并在进行扫描时让呼叫者继续进行其他业务,然后在完成时使用callbackUrl告诉他们扫描结果。


12

如果使用回调URL,则API可以连接到回调URL并发送或接收一些数据。这意味着API可以稍后(在API调用之后)与您连接。

图表

  1. 使用请求将数据发送到API
  2. API使用第二个请求向发送数据

确切的定义应该在API文档中。


5

这是一种以异步方式调用API的机制。顺序如下

  1. 您的应用会调用该网址,并将回调网址作为参数传递
  2. api用20x http代码响应(我想是201,但请参考api文档)
  3. API会根据您的要求工作一段时间
  4. api会在回调URL地址处调用您的应用以为您提供结果。

因此,您可以调用api并告诉您的用户请求是“正在处理”还是“已获取”,然后在收到api的响应时更新状态。

希望有道理。-G


2

另一个用例可能是类似OAuth的情况,API可能不会直接调用它,而是在完成与身份提供者的身份验证后,浏览器会调用回调URL。

通常,在最终用户键入用户名密码后,身份服务提供商将触发浏览器重定向到带有临时授权码的“回调” URL,例如

https://example.com/callback?code=AUTHORIZATION_CODE

然后,您的应用程序可以使用此授权码向具有更长寿命的身份提供者请求访问令牌。


0

我将为您简化这一过程。启动事务后,它将进入处理阶段,直到到达终止阶段。一旦到达终端阶段,交易状态就会由付款网关发布到回调URL,通常商家会以此为参考向用户显示成功/失败页面。希望这可以帮助?

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.