Project

General

Profile

Rest api with php » History » Revision 8

Revision 7 (Jean-Philippe Lang, 2010-12-03 23:34) → Revision 8/14 (B Brey, 2011-01-06 21:49)

h1. Using the REST API with PHP 

 Here is an example that uses "PHP ActiveResource":http://wiki.github.com/lux/phpactiveresource/, a lightweight PHP library that can be used to access Rails' REST APIs: 

 <pre> 
 <code class="php"> 
 <?php 
 require_once ('ActiveResource.php'); 

 class Issue extends ActiveResource { 
     var $site = 'http://username:password@192.168.199.129:3000/'; 
     var $request_format = 'xml'; // REQUIRED! 
 } 

 // create a new issue 
 $issue = new Issue (array ('subject' => 'XML REST API', 'project_id' => '1')); 
 $issue->save (); 
 echo $issue->id; 

 // find issues 
 $issues = $issue->find ('all'); 
 for ($i=0; $i < count($issues); $i++) { 
	 echo $issues[$i]->subject; 
 } 

 // find and update an issue 
 $issue->find (1); 
 echo $issue->subject; 
 $issue->set ('subject', 'This is the new subject')->save (); 

 // delete an issue 
 $issue->find (1); 
 $issue->destroy (); 
 ?> 
 </code> 
 </pre> 

 *Known issues* 

 If you are working with large descriptions the webserver can return a 417 error (Bad Expectation). 
 You should replace line 381 in ActiveResource.php with the following code: 

 <pre>curl_setopt ($ch, CURLOPT_HTTPHEADER, array ('Expect:',"Content-Type: text/xml", "Length: " . strlen ($params)));</pre>