genericmilk / telephone
从Laravel中轻松调用简单API!
Requires
- php: >=7.0
Requires (Dev)
- laravel/framework: ^8.0.0
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端点以及更多的配置和默认设置,因此如果您有一个常见的携带令牌,您可以将它添加到所有符合一定模式的请求中。告诉我您的想法!爱你们 🥰