xrobau / pest
适用于PHP的正确REST客户端。(从废弃的Educoder/pest分支而来)
Requires
- php: >=5.2
- lib-curl: *
This package is auto-updated.
Last update: 2024-09-20 07:44:30 UTC
README
Pest 是一个用于 RESTful 网络服务的PHP客户端库。
与 Zend_Rest_Client 不同,后者根本不是真正的“REST”客户端(更像是RPC-over-HTTP),Pest支持四个REST动词(GET/POST/PUT/DELETE)并关注HTTP响应状态码。
Composer安装
要安装Pest,请使用以下composer require
语句
{
"require": {
"xrobau/pest": "1.0.0"
}
}
基本示例
Pest的get/post/put/delete()返回原始响应体作为字符串。如果您正在使用基于XML的REST服务,请参阅PestXML(以下)的信息;如果您正在使用JSON,请参阅PestJSON。
<?php
use \xrobau\Pest\Pest;
$pest = new Pest('http://example.com');
$thing = $pest->get('/things');
$thing = $pest->post('/things',
array(
'name' => "Foo",
'colour' => "Red"
)
);
$thing = $pest->put('/things/15',
array(
'colour' => "Blue"
)
);
$pest->delete('/things/15');
?>
具有错误状态码(4xx和5xx)的响应将引发异常。
<?php
try {
$thing = $pest->get('/things/18');
} catch (Pest_NotFound $e) {
// 404
echo "Thing with ID 18 doesn't exist!";
}
try {
$thing = $pest->post('/things', array('colour' => "Red"));
} catch (Pest_InvalidRecord $e) {
// 422
echo "Data for Thing is invalid because: ".$e->getMessage();
}
?>
PestXML
PestXML 是Pest的以XML为中心的版本,专门针对返回XML数据的REST服务。而不是返回原始响应体作为字符串,PestXML将尝试将服务的响应解析为SimpleXML对象。
<?php
use \xrobau\Pest\Pest;
$pest = new Pest('http://example.com');
$things = $pest->get('/things.xml');
$colours = $things->xpath('//colour');
foreach($colours as $colour) {
echo $colour."\n";
}
?>
同样,PestJSON 是Pest的以JSON为中心的版本。
更详细的示例可在examples
目录中找到
待办事项
- 身份验证
- 跟随重定向
许可证
版权(C)2011,多伦多大学
在此,免费向任何获得此软件及其相关文档副本(“软件”)的人授予许可,可以在不受限制的条件下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许软件的受让人执行上述操作,前提是
上述版权声明和本许可声明应包含在软件的副本或主要部分中。
该软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论该责任是因合同、侵权或其他行为引起的,无论该行为是否与软件或其使用或其它方式有关。