genericmilk/telephone

此包已被弃用且不再维护。没有建议的替代包。

从Laravel中轻松调用简单API!

1.6.0 2021-02-16 13:25 UTC

This package is auto-updated.

Last update: 2021-08-29 13:29:39 UTC


README

👴 此仓库已归档且不再维护,因为Laravel已经推出了一款更好的官方替代方案!请切换到 https://laravel.net.cn/docs/8.x/requests 以开始使用

📱 电话

由 Genericmilk 提供

电话是一个可爱的PHP cURL前端,它允许快速轻松地向JSON API发起GET和POST请求!

为什么选择这个而不是cURL?

简单!虽然使用cURL是完全可能的,但这将过程大大简化为1-3行代码,最重要的是,以PHP对象的形式响应,可以直接进行导航!这使得请求更易于阅读和遍历

安装电话

要开始使用电话,您需要将其添加到您的composer.json文件中。您可以通过运行以下命令来完成此操作

composer require genericmilk/telephone

这将安装使电话工作所需的前提条件。

使用电话

要在控制器中使用电话,您需要导入它。将以下内容添加到控制器顶部以开始使用;

use Genericmilk\Telephone\Telephone;

现在您已将电话添加到控制器中,您可以使用它来构建请求!

使用电话创建无授权的GET请求

使用电话创建的GET请求由两部分组成,即url和您想使用的任何headers。如果您没有需要传递的header信息,例如Bearer令牌,您可以像这样发出请求

$RingRing = Telephone::call('https://jsonplaceholder.typicode.com/photos/1')->get();

$RingRing的值将是API返回的响应的PHP对象。然后您可以这样遍历它;

return $RingRing->url; // will return example photo from api call

当然,如果响应中有多个项目,您只需像这样使用foreach迭代即可;

foreach($RingRing as $Item){
  echo $Item->url;
}

使用电话创建带授权的GET请求

如果您需要在请求中传递授权,例如通过Bearer Token,您可以将其添加到链中,如下所示

$RingRing = Telephone::call('https://jsonplaceholder.typicode.com/photos/1')
->bearer('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')
->get();

扩展头

如果您需要向headers数组添加更多内容,可以添加以下内容

$RingRing = Telephone::call('https://jsonplaceholder.typicode.com/photos/1')
->headers([
  'Origin: https://nullstack.co.uk',
  'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36'
])
->get();

您可以使用此方法根据需要扩展header数组。任何数据都将随请求发送

使用电话创建POST请求

创建POST请求与GET请求的制作方式几乎相同,关键区别在于还有一个数组可以发送,如果需要,它将以form-data的形式在POST请求中发送。

您可以使用请求如下;

$RingRing = Telephone::call('https://jsonplaceholder.typicode.com/photos/1')
->bearer('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')
->body([
  'Key' => 'Value',
  'AnotherKey' => 'AnotherValue'
])
->post();

您可以根据需要调整请求的大小。如果您不提供数组(即没有表单数据的POST请求),只需像这样在请求中不包括它;

$RingRing = Telephone::call('https://jsonplaceholder.typicode.com/photos/1')
->bearer('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')
->post();

如果没有默认存在数组,电话将不会发送任何数据。

失败的请求

如果电话收到除200之外的内容,默认情况下会抛出异常。您可以在稍后版本中通过配置更改此行为!

路线图

我真心希望您喜欢使用电话。它应该能够真正帮助您阅读API请求,并通过将数据转换为原生PHP对象来加速工作流程!我计划允许XML端点以及更多的配置和默认设置,因此如果您有一个常见的携带令牌,您可以将它添加到所有符合一定模式的请求中。告诉我您的想法!爱你们 🥰