tuimz / pest
This package is auto-updated.
Last update: 2022-02-01 12:24:49 UTC
README
Pest 是一个 PHP 客户端库,用于RESTful 网络服务。
与 Zend_Rest_Client 不同,后者根本不是一个真正的 "REST" 客户端(更像是 RPC-over-HTTP),Pest 支持 REST 的四个动词(GET/POST/PUT/DELETE)并关注 HTTP 响应状态码。
请注意,这是 Pest 的命名空间版本,命名空间为 'Pest'
使用 Composer 入门
将以下内容添加到您的项目的 composer.json 中
"require": {
"tuimz/pest": "dev-master",
}
以下示例使用 Pest 的命名空间版本
<?php
require '/vendor/autoload.php';
$pest = new Pest\Pest('http://example.com');
除了这个,以下所有示例都适用。
基本示例
Pest 的 get/post/put/delete() 返回原始响应体作为字符串。如果您正在处理基于 XML 的 REST 服务,请参阅 PestXML(以下),如果您正在处理 JSON,请参阅 PestJSON。
<?php
require 'Pest.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 是 Pest 的以 XML 为中心的版本,特别针对返回 XML 数据的 REST 服务。PestXML 不会像通常那样返回原始响应体作为字符串,而是会尝试将服务的响应解析为 SimpleXML 对象。
<?php
require 'PestXML.php';
$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
目录中找到
待办事项
- 身份验证
- 跟随重定向
许可
版权所有 © 2011 多伦多大学
任何人可以免费获得本软件及其相关文档副本(以下简称“软件”),无需限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件的副本,并允许获得本软件的人进行此类操作,但必须遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“现状”提供,不提供任何形式的保证,无论是明示的、暗示的,还是包括但不限于适销性、适用于特定目的和非侵权的保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论是因为合同、侵权或其他行为,无论该索赔、损害或其他责任是从、由于或与软件的使用或其他方式有关。