Exemplo n.º 1
0
 public static function handleRequest()
 {
     $request = array();
     // parse the request metadata
     $request['metadata'] = CartAPI_Engine::getRequestMetadata();
     // parse the request post data (if found)
     $request['data'] = array();
     $post_data = CartAPI_Engine::getRequestPostData();
     if ($post_data !== false) {
         $decoder = CartAPI_Engine::getDecoder($request['metadata']['X-FORMAT']);
         if ($decoder !== false) {
             $request['data'] = $decoder->parse($post_data);
         }
     }
     // override with parameters passed on the URL
     CartAPI_Engine::parseUrlRequestData($request['data']);
     // prepare an encoder for the response
     $request['encoder'] = CartAPI_Engine::getEncoder($request['metadata']['X-FORMAT']);
     if ($request['encoder'] === false) {
         return false;
     }
     // do some sanity checking
     if (!isset($request['metadata']['X-OPERATION'])) {
         CartAPI_Helpers::dieOnError($request['encoder'], 'IncompleteMetadata', 'X-OPERATION missing from metadata');
     }
     return $request;
 }
<?php

require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'Engine.php';
$encoder = CartAPI_Engine::getEncoder('XML');
// regular work (explicit arrays)
print "\n*********************************\nTEST\n*********************************\n\n";
$root = $encoder->createRoot();
$encoder->addString($root, 'Name', 'John Smith');
$encoder->addNumber($root, 'Age', 30);
$encoder->addBoolean($root, 'IsOld', true);
$wife =& $encoder->addContainer($root, 'Wife');
$encoder->addString($wife, 'Name', 'Betty Smith');
$encoder->addNumber($wife, 'Age', 28);
$encoder->addBoolean($wife, 'IsOld', false);
$wife_pet =& $encoder->addContainer($wife, 'Pet');
$encoder->addString($wife_pet, 'Name', 'Rex');
$encoder->addNumber($wife_pet, 'Age', 3);
$encoder->addBoolean($wife_pet, 'IsOld', false);
$colors =& $encoder->addArray($root, 'Color');
$encoder->addStringToArray($colors, 'Red');
$encoder->addStringToArray($colors, 'Green');
$encoder->addStringToArray($colors, 'Blue');
$friends =& $encoder->addArray($root, 'Friend');
$friend =& $encoder->addContainerToArray($friends);
$encoder->addString($friend, 'Name', 'Billy James');
$encoder->addNumber($friend, 'Age', 31);
$encoder->addBoolean($friend, 'IsOld', true);
$friend =& $encoder->addContainerToArray($friends);
$encoder->addString($friend, 'Name', 'Jeff Frost');
$encoder->addNumber($friend, 'Age', 29.5);
$encoder->addBoolean($friend, 'IsOld', false);
<?php

require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . 'Engine.php';
$encoder = CartAPI_Engine::getEncoder('JSON');
// regular work (explicit arrays)
print "\n*********************************\nTEST\n*********************************\n\n";
$root = $encoder->createRoot();
$encoder->addString($root, 'Name', 'John Smith');
$encoder->addNumber($root, 'Age', 30);
$encoder->addBoolean($root, 'IsOld', true);
$wife =& $encoder->addContainer($root, 'Wife');
$encoder->addString($wife, 'Name', 'Betty Smith');
$encoder->addNumber($wife, 'Age', 28);
$encoder->addBoolean($wife, 'IsOld', false);
$wife_pet =& $encoder->addContainer($wife, 'Pet');
$encoder->addString($wife_pet, 'Name', 'Rex');
$encoder->addNumber($wife_pet, 'Age', 3);
$encoder->addBoolean($wife_pet, 'IsOld', false);
$colors =& $encoder->addArray($root, 'Color');
$encoder->addStringToArray($colors, 'Red');
$encoder->addStringToArray($colors, 'Green');
$encoder->addStringToArray($colors, 'Blue');
$friends =& $encoder->addArray($root, 'Friend');
$friend =& $encoder->addContainerToArray($friends);
$encoder->addString($friend, 'Name', 'Billy James');
$encoder->addNumber($friend, 'Age', 31);
$encoder->addBoolean($friend, 'IsOld', true);
$friend =& $encoder->addContainerToArray($friends);
$encoder->addString($friend, 'Name', 'Jeff Frost');
$encoder->addNumber($friend, 'Age', 29.5);
$encoder->addBoolean($friend, 'IsOld', false);