测试第三方 Webhook 与本地应用程序之间的集成
发布日期:作者: Renoir dos Reis
这听起来可能很愚蠢,但自从我开始开发 Web 应用程序以来,我一直发现检查和调试我的应用程序与第三方 Webhook 之间的集成很痛苦。除了复制事件的麻烦之外,我从未依赖于测试“假设”场景。
工具
好消息是,有一个解决方案可以有效地解决所有这些问题。 Ngrok 是由 Alan Shreve 创建的产品。他在 2013 年写了一篇关于 Ngrok 的创建以及一篇 关于他博客上的文章,他在文章中将该产品描述如下:
“Ngrok 是一种隧道、反向代理,它从公共端点到本地运行的网络服务建立安全隧道,同时捕获所有流量以供检查和回放。这是一个在 GitHub 上的开源项目。”
让我们开始吧
现在您已经了解了一些关于该工具的信息以及为什么我发现它很有用,让我们演示一下如何公开本地环境以允许第三方服务通过 Webhook 向本地环境提交请求,这非常简单,我将要介绍的两种解决方案已通过测试,并适用于以下场景:
- 场景 1:使用 PHP 7.2.6 开发服务器的 PHP 项目
- 场景 2:使用 Laravel 开发服务器(php artisan serve)的 Laravel(PHP)项目
- 场景 3:使用 Laravel Homestead 的 Laravel(PHP)项目
要做到这一点,请按照以下步骤操作:
- 访问 Ngrok 网站
- 注册或登录
- 根据您的操作系统下载客户端
- 按照您下载客户端的页面上显示的说明,对下载的客户端进行身份验证。
对于前两种场景,只需运行以下命令。
ngrok http <主机>:<端口>
例如:ngrok http 127.0.0.0.1:666
对于第三种场景(如果您使用域名访问 Homestead,例如:homestead.test,您必须重写 host-header。但不用担心,要实现它,请将上面的命令增加为类似以下内容):
ngrok http <homestead_host_ip>:<端口> -host-header=<homestead_domain>
示例:ngrok http 192.168.10.10:80 -host-header=homestead.test
瞧,现在将 Ngrok 生成的 URL 指向您要测试的 Webhook,并享受这个极佳的解决方案。
您对 Ngrok、它的工作原理和最佳实践有任何疑问吗?查看 官方网站 的“工作原理”页面。如果您更喜欢在开始使用之前阅读文档,请访问 官方文档 的链接。
致谢
本文以以下资料为基础: