xrobau/pest

适用于PHP的正确REST客户端。(从废弃的Educoder/pest分支而来)

维护者

详细信息

github.com/xrobau/pest

主页

源代码

1.0.0 2016-04-15 03:12 UTC

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

在此,免费向任何获得此软件及其相关文档副本(“软件”)的人授予许可,可以在不受限制的条件下处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许软件的受让人执行上述操作,前提是

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

该软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论该责任是因合同、侵权或其他行为引起的,无论该行为是否与软件或其使用或其它方式有关。