Visit:为人类制作网络请求的 CLI 工具(类 CURL)
我很高兴地宣布我们已经发布了 Visit。这个工具可以显示任何 URL 的响应。 把它想象成人类的 cUrl。默认情况下,输出会被着色,响应后会显示响应代码和时间。
默认情况下,JSON 响应也会被着色。
并且与 Laravel 集成:它可以登录任何用户,报告用于构建响应的查询数量等等。
我想在这篇博文中告诉你这一切。
安装 visit
开始使用 visit
很简单:只需输入此命令,您就可以开始了。
composer global require spatie/visit
比较 visit 和 curl
Curl 是一个很棒的应用程序,可以管理几乎所有连接到互联网的设备的网络请求。 它有无数的选项,并支持你能想到的任何协议。
它也是使用 Unix 哲学设计的:只做好一件事。 本着这种精神,curl 只处理网络请求。 它不会试图变得更智能或添加更多功能。如果你想有彩色输出?只需将 curl 的输出传送到另一个处理着色的实用程序。
对于大多数事情,这种哲学是伟大的。您有无限的可能性连接小型应用程序。但这可能会导致使用大量选项和管道来获得所需输出的长命令。
让我们看看当我们尝试使用 curl 检索 spatie.be 时会发生什么。
Curl 可以到达 spatie.be 就好了。 但它默认使用http://
。结果似乎是一个重定向,但输出没有显示它重定向到的位置。没有尝试对输出进行着色。从 curl 的角度来看,这是有道理的:它不会试图变得聪明。但作为一个使用者,你可能期待更多。
让我们将其与 Visit 的输出进行比较。
如果您未指定任何协议,Visit 将假定为「https://。 」 输出将被漂亮地着色。 在响应的底部,您会看到我们添加了一个漂亮的小块,其中包含响应代码和请求的持续时间。背景是绿色的,因为响应代码在 200-399 范围内。
由于某种原因,该结果块被添加到底部而不是顶部。大多数 HTML 页面的源代码都比 CLI 长。 如果访问将结果块放在顶部,您将始终需要向上滚动才能看到它。
但是,如果我真的想查看来自http://
的响应呢? 好吧...只需将协议添加到您的命令中。
与 curl 相比,Visit 会在结果块中显示它重定向到的位置。
如果您想在允许重定向之后显示响应,只需添加 --follow-redirects
选项。
这是执行此命令时访问输出的底部:
visit http://spatie.be --follow-redirects
您可以看到访问附加了一个重定向部分,列出了所有跟随的重定向。
为人类提供更多选择和功能
可以通过添加 --headers
选项来显示响应的标头。
如果您想查看响应中显示的文本,那么周围的 HTML 可能会让人不知所措。 传递 --text
选项以仅显示文本。 响应将呈现为类似降价的东西,因此您仍然可以看到链接指向的位置。
访问还可以为 JSON 响应着色。 让我们尝试一下 Star Wars API。
您可以传递一个 --filter
选项以仅显示响应的特定部分。
访问也可以传递有效载荷。 它应该被格式化为 JSON。 这是一个小例子。
visit <your-url> --payload='{"testKey":"testValue"}'
当您传递有效负载时,我们会假设您要发出「POST」请求。如果您想使用另一个 HTTP 动词,请显式传递它。
visit <your-url> --method=patch --payload='{"testKey":"testValue"}'
与 Laravel 集成
访问还有更多技巧。 visit
命令可以访问 Laravel 应用并执行以下操作:
- 作为用户登录
- 访问一个路由
- 报告执行的查询数量和水合模型以建立响应。
要启用此功能,您必须在 Laravel 应用程序中安装 spatie/laravel-visit 包。
要访问 Laravel 应用程序中的路由,请确保在当前工作目录是您的 Laravel 应用程序时执行「访问」。您还应该使用相对 URL(省略应用程序 URL)。
您可以使用这些额外的选项:
--user
: 您可以将此选项传递给将在呈现响应之前登录的用户标识或电子邮件--route
: 将此选项传递给路线的名称;您不必再指定 URL。例如visit --route=contact
--show-exceptions
: 当您的应用程序引发异常时,此选项将显示该异常。
以下是「路由」选项的示例:
在最后的统计信息块中,您将看到查询和模型的数量。
您可以轻松地将更多统计信息添加到结果块。您可以在我们的文档中 了解如何执行此操作。
结束语
通过创建 Visit,我已经非常满足自己的需求了。通过创建我自己的工具,我可以设置对我有意义的默认设置。而且由于我主要在 Laravel 工作,因此在访问 Laravel 应用程序时加倍努力是有意义的。
Visit 还有更多选项。 前往文档 了解所有内容。
Visit 是使用 PHP 编写。 我为 spatie/visit 和 spatie/laravel-visit 开放了 PR, 来让它变得更好。如果您正在寻找一个可以贡献的好项目,这可能就是它。
请务必... 🥁 访问我们公司的网站以查看我们最新发布的 大量软件包和工具列表 。如果您想支持我们,请考虑购买 我们的付费产品和课程 之一,或 通过 GitHub 赞助我们 。
我希望你会像我一样喜欢 Visit!
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
持续关注
~:+1: