battis/educoder-pest-fork

此软件包已被废弃,不再维护。未建议替代软件包。

PHP的适当REST客户端。

v1.0.1 2016-03-23 15:38 UTC

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,多伦多大学

本软件及关联文档文件(以下简称“软件”)的副本由任何获得副本的人免费使用,不受限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供的人这样做,前提是以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和非侵权性保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他方式,从软件本身、使用或与其他软件一起使用中产生的。