PHP用RestライブラリREST_Clientを公開しました

 RESTリクエストを生成するライブラリREST_Clientを公開しました。 Mashup Caravan TokyoのLT発表したものですが猛暑によるダウンや自分用だったのを一般向けに手直しするのに時間がかかってしまいました。

これは何?


 今話題のPathtraqをはじめとする各種webサービスAPIとのマッシュアップサービスを作る際に意外と面倒なRest形式のリクエスト生成、クエリーのポスト、そしてパースを一つのパッケージにしたものです。
 また、GoogleStaticMapや各種ソーシャルブックマークサイトのブックマーク数画像表示APIのように単純にリクエストを作るだけでいい各種API用にリクエスト生成ライブラリとしても使用可能です。

 ライセンスはPHPライセンスとしてます。

インストール・動作条件

 
 PHP5.2以上、およびPEARのHTTP_Requestがインストールされているサーバー環境が必要です。
 こちらからzipファイルをダウンロードの後、解凍して中の「REST」ディレクトリをライブラリ用のディレクトリにコピーしてください。

使い方

基本的な使い方

 レスポンスの形式がXMLであれば非常に単純です。例えばPathtraqの注目ニュースを取得する場合ならば

<?php
	require_once('REST/Client.php');
 	$Client=new REST_Client('http://api.pathtraq.com/news_ja');
	$Client->m='hot';
	if($Client->postQuery()){
	    $respons=$Client->getAll();//SimpleXMLオブジェクトが返ってくる
		foreach($respons->channel->item as $item){
		
			echo $item->title;
		        echo '/';
                        echo $item->link;
                        echo '<br/>';

		}
	
	}
	else
	{
	
		if(PEAR::isError($Client->Error){
		
			echo '接続エラー';
		}
		else
		{
		
			echo $Client->Error;
		
		}
	
	}
?>
XML以外のレスポンス形態に対応する

 レスポンスがXML形式でなくJSON形式であれば、パーサを変えるだけで対応できます。

<?
	require_once('REST/Client.php');
 	$Client=new REST_Client('http://api.example.com/operation/');
	$Client->say='Hello World';
	$Client->setParser('PHPJson');
        if($Client->postQuery()){
	
		foreach($Client->getAll() as $respons){
		
			echo $respons;
		
		}
	
	}
	else
	{
	
		if(PEAR::isError($Client->Error){
		
			echo '接続エラー';
		}
		else
		{
		
			echo $Client->Error;
		
		}
	
	}
?>
RESTFullAPIのリクエストを生成する

 単純にリクエスト生成器として使う場合、オブジェクトを文字列にキャスト、あるいはechoのようにオブジェクトを与えると文字列にキャストされる関数ないしは言語構造を使うだけですみます。

<?
    require_once('REST/Client.php');
	$Client=new REST_Client('http://restfull.example.com/operation/);
	$Client->say='Hello World';
	$img=(string)$Client;
	echo '<img src="'.$img.'">';
?>