battis/ educoder-pest-fork
PHP的适当REST客户端。
Requires
- php: >=5.2
- lib-curl: *
This package is auto-updated.
Last update: 2023-05-25 12:40:44 UTC
README
Pest 是一个用于RESTful Web服务的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 是Pest的以XML为中心的版本,特别针对返回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 是Pest的以JSON为中心的版本。
在examples
目录中提供了更多详细示例。
待办事项
- 身份验证
- 跟随重定向
许可
版权(C)2011,多伦多大学
本软件及关联文档文件(以下简称“软件”)的副本由任何获得副本的人免费使用,不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供的人这样做,前提是以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和非侵权性保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他方式,从软件本身、使用或与其他软件一起使用中产生的。