【问题标题】:How to test integrations between local environment and external services (webhooks)如何测试本地环境和外部服务(webhook)之间的集成
【发布时间】:2019-06-06 08:44:05
【问题描述】:

自从我开始开发 Web 应用程序以来,我总是发现检查外部服务请求并使用“现实”场景测试我的应用程序非常烦人。我们有哪些解决方案可以将我的本地开发环境暴露给外部服务?

我正在使用 Laravel Homestead 和/或 PHP 开发服务器

【问题讨论】:

    标签: php laravel localhost environment homestead


    【解决方案1】:

    在寻找明确答案之前,我找到了一个以高效、免费的方式解决所有这些问题的解决方案,这就是Ngrok,这是由Alan Shreve 创建的产品——它曾与微软和微软等巨头合作过特维利奥。 Alan 写了关于 Ngrok 的创建和article on his blog,他将产品描述为:

    “Ngrok 是一个隧道反向代理,它建立从公共端点到本地运行的网络服务的安全隧道,同时捕获所有流量以供检查和重放。它是 GitHub 上的一个开源项目。”

    让我们开始吧:

    好吧,既然您对该工具以及我发现它的原因有所了解,让我们演示如何公开本地环境以允许第三方服务通过 Webhook 向本地环境提交请求,这非常简单,两种解决方案我要介绍的已经过测试并适用于以下场景:

    • 场景 1:使用 PHP 7.2.6 开发服务器的 PHP 项目
    • 场景 2:使用 Laravel Development Server (php artisan serve) 的 Laravel (PHP) 项目
    • 场景 3:使用 Laravel Homestead 的 Laravel (PHP) 项目

    要做到这一点,只需按照以下步骤操作:

    1. 访问Ngrok website
    2. 注册或登录
    3. 根据您的操作系统下载客户端
    4. 按照您下载客户端的同一页面上显示的说明对下载的客户端进行身份验证。

    对于前两种情况,只需运行以下命令

    ngrok http <host>:<port>

    例如:ngrok http 127.0.0.0.1:666

    对于第三种情况(如果您使用域访问家园,例如:homestead.test,您必须重写主机头。但不要担心,要实现它只需将上面的命令增加到类似的东西)

    ngrok http <homestead_host_ip>:<port> -host-header=<homestead_domain>

    示例:ngrok http 192.168.10.10:80 -host-header=homestead.test

    瞧,现在只需将 Ngrok 在 Webhook 中生成的 URL 指向您想要测试并享受这个美妙的解决方案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      • 2013-08-11
      • 2021-06-21
      • 1970-01-01
      • 1970-01-01
      • 2020-12-01
      相关资源
      最近更新 更多