【发布时间】:2014-06-14 08:26:33
【问题描述】:
我一直在网上搜索,但似乎无法完全理解回调 URL 的想法。就我而言,我有一些我必须自己定义的回调 URL。一种流行的是“默认回调 URL”。这究竟是什么?你能用简单的英语举个例子吗?
【问题讨论】:
我一直在网上搜索,但似乎无法完全理解回调 URL 的想法。就我而言,我有一些我必须自己定义的回调 URL。一种流行的是“默认回调 URL”。这究竟是什么?你能用简单的英语举个例子吗?
【问题讨论】:
回调 URL 将在完成后由您调用的 API 方法调用。所以如果你打电话
POST /api.example.com/foo?callbackURL=http://my.server.com/bar
然后当/foo完成后,它会向http://my.server.com/bar发送一个请求。该请求的内容和方法会有所不同 - 请查看您正在访问的 API 的文档。
【讨论】:
把它想象成一个字母。有时您会收到一封信,说要求您填写表格,然后将表格装在一个预先指定地址的信封中,该信封位于存放该表格的原始信封中。
填写完表格后,将其放入提供的回邮信封并寄回。
回调 URL 就像那个返回信封。你基本上是在说,“我正在向你发送这些数据;一旦你完成了它,我就会在这个回调 URL 上监听,等待你的回应。”因此 API 将处理您发送的数据,然后查看回调以向您发送响应。
这很有用,因为有时您可能需要很长时间来处理一些数据,而让调用者等待响应是没有意义的。例如,假设您的 API 允许用户向其发送文档并对其进行病毒扫描。然后你发送一个报告之后。扫描可能需要 3 分钟。用户不能等待 3 分钟。所以你承认你得到了文件,让调用者在你扫描的时候继续做其他事情,然后在完成后使用回调 URL 告诉他们扫描的结果。
【讨论】:
这是一种以异步方式调用 API 的机制。顺序如下
因此,您可以调用 api 并告诉您的用户请求正在“处理”或“已获取”,然后在收到来自 api 的响应时更新状态。
希望这是有道理的。 -G
【讨论】:
我会为你做的很简单。当一个事务启动时,它会进入处理阶段,直到它到达终端阶段。一旦到达终端阶段,支付网关会将交易状态发布到回调 url,商家通常将其用作向用户显示成功/失败页面的参考。希望这会有所帮助?
【讨论】:
另一个用例可能是 OAuth,它可能不会被 API 直接调用,而是在完成与身份提供者的身份验证后由浏览器调用回调 URL。
通常在最终用户输入用户名密码后,身份服务提供商会触发浏览器重定向到您的“回调”网址,并带有临时授权码,例如
https://example.com/callback?code=AUTHORIZATION_CODE
然后您的应用程序可以使用此授权代码向身份提供者请求访问令牌,该身份提供者具有更长的生命周期。
【讨论】:
以下是回调工作原理的一个常见示例 - 大多数在线购买的人可能都经历过。您已经在您最喜欢的网站上进行了购买,然后单击了“提交”按钮。您可能会被发送到处理付款处理的外部服务(如 PayPal),您可以在其中确认您的订单,或者只是等待屏幕上闪烁的“处理中...”字样。交易完成后,您将被引导回原来的购物网站。您看到的页面是回调 URL。尽管您不知道,但您在处理过程中离开了您最喜欢的在线商店的网站,而您访问的外部网站又将您返回到该网站。除非出现任何故障,否则您应该会看到商店希望您在下单后看到的页面。它可能是感谢页面,或其他包含订单确认信息、后续步骤或主页的页面。它可能会因您订购的内容、订购时间和订购方式而有所不同。
基本上,回调 URL 为外部系统指明下一步要去哪里。该 URL 上的内容可以是任何内容。它不必是静态 URL。 More
【讨论】: