protected function _restserver($path, $method = 'GET', $params = array(), $getParams = array()) {
        $this->container = null;
        if ($this->debug) { $start = microtime(true); }
        if (is_array($method) && empty($params)) {
            $params = $method;
            $method = 'GET';
        }
        $getParams['method'] = $method; // method override as we always do a POST
        $uri = $this->getUrl('api', $path);
        $result = $this->_oauthRequest($uri, $params, $getParams);

        if (floatval($this->api_version) >= 2) {
            $container = json_decode($result, true);
            if ($container && array_key_exists('name', $container) && $container['name'] == 'SPP Container') {
                $this->container = $container;
            }
        }

        preg_match("/\.(json|jsonp|html|xml|serialize|php|csv|tgz)$/", $path, $matches);
        if ($matches) {
            switch ($matches[1]) {
                case 'json':
                    $result = json_decode($result, true);
                    break;
                default:
                    if ($this->debug) { $this->timer[__FUNCTION__]['elapsed'][] = microtime(true)-$start; }
                    return $result;
                    break;
            }
        } else
            $result = json_decode($result, true);

        // results are returned, errors are thrown
        if (is_array($result) && isset($result['error']) && $result['error']) {
            $e = new VGS_Client_Exception($result, $this->raw);
            switch ($e->getType()) {
                case 'ApiException':
                    break;
                // OAuth 2.0 Draft 00 style
                case 'OAuthException':
                    // OAuth 2.0 Draft 10 style
                case 'invalid_token':
                    $this->setSession(null);
            }
            throw $e;
        }
        if (floatval($this->api_version) >= 2 && $result && is_array($result) && array_key_exists('name', $result) && $result['name'] == 'SPP Container') {
            if (isset($result['sig']) && isset($result['algorithm'])) {
                $result = $this->validateAndDecodeSignedRequest($result['sig'], $result['data'], $result['algorithm']);
            } else {
                $result = $result['data'];
            }
        }
        if ($this->debug) { $this->timer[__FUNCTION__]['elapsed'][] = microtime(true)-$start; }
        return $result;
    }
protected function _restserver($path, $method = 'GET', $params = array(), $getParams = array()) {
        $this->container = null;
        if ($this->debug) { $start = microtime(true); }
        if (is_array($method) && empty($params)) {
            $params = $method;
            $method = 'GET';
        }
        $getParams['method'] = $method; // method override as we always do a POST
        $uri = $this->getUrl('api', $path);
        $result = $this->_oauthRequest($uri, $params, $getParams);

        if (floatval($this->api_version) >= 2) {
            $container = json_decode($result, true);
            if ($container && array_key_exists('name', $container) && $container['name'] == 'SPP Container') {
                $this->container = $container;
            }
        }

        preg_match("/\.(json|jsonp|html|xml|serialize|php|csv|tgz)$/", $path, $matches);
        if ($matches) {
            switch ($matches[1]) {
                case 'json':
                    $result = json_decode($result, true);
                    break;
                default:
                    if ($this->debug) { $this->timer[__FUNCTION__]['elapsed'][] = microtime(true)-$start; }
                    return $result;
                    break;
            }
        } else
            $result = json_decode($result, true);

        // results are returned, errors are thrown
        if (is_array($result) && isset($result['error']) && $result['error']) {
            $e = new VGS_Client_Exception($result, $this->raw);
            switch ($e->getType()) {
                case 'ApiException':
                    break;
                // OAuth 2.0 Draft 00 style
                case 'OAuthException':
                    // OAuth 2.0 Draft 10 style
                case 'invalid_token':
                    $this->setSession(null);
            }
            throw $e;
        }
        if (floatval($this->api_version) >= 2 && $result && is_array($result) && array_key_exists('name', $result) && $result['name'] == 'SPP Container') {
            if (isset($result['sig']) && isset($result['algorithm'])) {
                $result = $this->validateAndDecodeSignedRequest($result['sig'], $result['data'], $result['algorithm']);
            } else {
                $result = $result['data'];
            }
        }
        if ($this->debug) { $this->timer[__FUNCTION__]['elapsed'][] = microtime(true)-$start; }
        return $result;
    }
protected function _restserver ( $ path , $ method = 'GET' , $ params = array ( ) , $ getParams = array ( ) ) { $ this -> container = null ; if ( $ this -> debug ) { $ start = microtime ( true ) ; } if ( is_array ( $ method ) && empty ( $ params ) ) { $ params = $ method ; $ method = 'GET' ; } $ getParams [ 'method' ] = $ method ; // method override as we always do a POST $ uri = $ this -> getUrl ( 'api' , $ path ) ; $ result = $ this -> _oauthRequest ( $ uri , $ params , $ getParams ) ; if ( floatval ( $ this -> api_version ) >= 2 ) { $ container = json_decode ( $ result , true ) ; if ( $ container && array_key_exists ( 'name' , $ container ) && $ container [ 'name' ] == 'SPP Container' ) { $ this -> container = $ container ; } } preg_match ( "/\.(json|jsonp|html|xml|serialize|php|csv|tgz)$/" , $ path , $ matches ) ; if ( $ matches ) { switch ( $ matches [ 1 ] ) { case 'json' : $ result = json_decode ( $ result , true ) ; break ; default : if ( $ this -> debug ) { $ this -> timer [ __FUNCTION__ ] [ 'elapsed' ] [ ] = microtime ( true ) - $ start ; } return $ result ; break ; } } else $ result = json_decode ( $ result , true ) ; // results are returned, errors are thrown if ( is_array ( $ result ) && isset ( $ result [ 'error' ] ) && $ result [ 'error' ] ) { $ e = new VGS_Client_Exception ( $ result , $ this -> raw ) ; switch ( $ e -> getType ( ) ) { case 'ApiException' : break ; // OAuth 2.0 Draft 00 style case 'OAuthException' : // OAuth 2.0 Draft 10 style case 'invalid_token' : $ this -> setSession ( null ) ; } throw $ e ; } if ( floatval ( $ this -> api_version ) >= 2 && $ result && is_array ( $ result ) && array_key_exists ( 'name' , $ result ) && $ result [ 'name' ] == 'SPP Container' ) { if ( isset ( $ result [ 'sig' ] ) && isset ( $ result [ 'algorithm' ] ) ) { $ result = $ this -> validateAndDecodeSignedRequest ( $ result [ 'sig' ] , $ result [ 'data' ] , $ result [ 'algorithm' ] ) ; } else { $ result = $ result [ 'data' ] ; } } if ( $ this -> debug ) { $ this -> timer [ __FUNCTION__ ] [ 'elapsed' ] [ ] = microtime ( true ) - $ start ; } return $ result ; }
Invoke the REST API.

@param string $path the path (required)
@param string $method the http method (default 'GET')
@param array $params the query/post data
@param array $getParams
@return array decoded response object
@throws VGS_Client_Exception
Invoke the REST API .