public function jsonAction() { $server = new Zend_Json_Server(); $server->setClass('My_Server_Ventas'); if ('GET' == $_SERVER['REQUEST_METHOD']) { $server->setEnvelope(Zend_Json_Server_Smd::ENV_JSONRPC_2); $smd = $server->getServiceMap(); //header('Content-Type: application/json'); echo $smd; return; } $server->handle(); }
$loader->registerNamespace('CnCNet_'); unset($loader); $db = Zend_Db::factory('Pdo_Sqlite', array('dbname' => 'db/cncnet.db')); Zend_Db_Table::setDefaultAdapter($db); $db->query('PRAGMA foreign_keys = ON'); unset($db); $type = isset($_GET['type']) ? $_GET['type'] : 'json'; if ($type == 'json' || $type == 'jsonp') { $server = new Zend_Json_Server(); $server->setClass('CnCNet_Api'); if ($type == 'jsonp') { $server->setRequest(new CnCNet_Json_Server_Request_Http_Jsonp()); $server->setResponse(new CnCNet_Json_Server_Response_Http_Jsonp()); } else { if ($_SERVER['REQUEST_METHOD'] == 'GET') { echo $server->setEnvelope(Zend_Json_Server_Smd::ENV_JSONRPC_2)->getServiceMap(); return; } } $server->handle(); } else { if ($type == 'xml') { header('Content-type: text/xml'); $server = new Zend_XmlRpc_Server(); $server->setClass('CnCNet_Api'); echo $server->handle(); } else { if ($type == 'dumb') { header('Content-type: text/plain; charset=UTF-8'); $server = new CnCNet_Api(); if (isset($_GET['method']) && method_exists($server, $_GET['method'])) {
/** * Override of run method to provide JSON server interface * * @return void */ public function run() { if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') { // run Zend_Json_Server instead of the MVC stack $request = new Zend_Controller_Request_Http(); $info = explode('/', trim($request->getPathInfo(), '/')); $module = $info[0]; $service = $info[1]; // attach the service to the JSON-RPC server $service = $this->_loadService($module, $service); $server = new Zend_Json_Server(); $server->setClass($service); if ('GET' == $_SERVER['REQUEST_METHOD']) { // return the service map $server->setEnvelope(Zend_Json_Server_Smd::ENV_JSONRPC_2); $smd = $server->getServiceMap(); header('Content-Type: application/json'); echo $smd; return; } $server->handle(); } else { parent::run(); } }