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);