educoder / pest
适用于 PHP 的合适 REST 客户端。
Requires
- php: >=5.2
- lib-curl: *
This package is not auto-updated.
Last update: 2024-09-24 02:16:43 UTC
README
Pest 是一个针对 RESTful 网络服务的 PHP 客户端库。
与 Zend_Rest_Client 不同,后者根本不是一个真正的 "REST" 客户端(更像是 RPC-over-HTTP),Pest 支持 REST 的四个动词(GET/POST/PUT/DELETE)并且关注 HTTP 响应状态码。
Composer 安装
要安装 Pest,请使用以下 composer require
语句
{
"require": {
"educoder/pest": "1.0.0"
}
}
基本示例
Pest 的 get/post/put/delete() 方法返回原始响应体作为字符串。如果您正在处理基于 XML 的 REST 服务,请参阅 PestXML(以下)的相关信息;如果您正在处理 JSON,请参阅 PestJSON。
<?php
$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 是一个以 XML 为中心的 Pest 版本,专门针对返回 XML 数据的 REST 服务。PestXML 不会将原始响应体作为字符串返回,而是尝试将服务的响应解析为 SimpleXML 对象。
<?php
$pest = new Pest('http://example.com');
$things = $pest->get('/things.xml');
$colours = $things->xpath('//colour');
foreach($colours as $colour) {
echo $colour."\n";
}
?>
类似地,PestJSON 是一个以 JSON 为中心的 Pest 版本。
更详细的示例可在 examples
目录中找到
待办事项
- 身份验证
- 跟随重定向
许可证
版权所有 (C) 2011,多伦多大学
特此授予任何获得本软件及其相关文档副本(以下简称“软件”)的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许软件的接收者为此目的进行操作,但须遵守以下条件
上述版权声明和本许可声明应包含在软件的副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、适用于特定用途和不受侵犯的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任是基于合同、侵权或其他方式,也不论该责任是否因软件或其使用或其他操作而产生。