2012-12-28 96 views
4

在magento中,我們使用REST URL訪問數據,因爲它以XML格式返回http://localhost/magemto/api/rest/products如何在Magento中默認獲取JSON格式的REST API的響應

但作爲我的團隊要求,我應該以JSON格式發送數據以輕鬆訪問AJAX調用。我已經使用REST客戶端將頭部包含爲「Content-Type:appilcation/json」。然後返回JSON格式..但我希望它默認由magento API ..

回答

11

嘿,我有一個解決方案,我想與你分享。

首先去你的Magento根文件夾,然後轉到以下路徑

\app\code\core\Mage\Api2\Model\Request.php

轉到方法getAccepTypes(),並使用此代碼改變它下面將滿足您的要求。

public function getAcceptTypes() 
{ 
    $qualityToTypes = array(); 
    $orderedTypes = array(); 

    foreach (preg_split('/,\s*/', $this->getHeader('Accept')) as $definition) { 
     $typeWithQ = explode(';', $definition); 
     $mimeType = trim(array_shift($typeWithQ)); 

     // check MIME type validity 
     if (!preg_match('~^([0-9a-z*+\-]+)(?:/([0-9a-z*+\-\.]+))?$~i', $mimeType)) { 
      continue; 
     } 
     $quality = '1.0'; // default value for quality 

     if ($typeWithQ) { 
      $qAndValue = explode('=', $typeWithQ[0]); 

      if (2 == count($qAndValue)) { 
       $quality = $qAndValue[1]; 
      } 
     } 
     $qualityToTypes[$quality][$mimeType] = true; 
    } 
    krsort($qualityToTypes); 

    foreach ($qualityToTypes as $typeList) { 
     $orderedTypes += $typeList; 
    } 

    unset($orderedTypes); 
    $orderedTypes=Array 
     ("application/json" => 1); 

    return array_keys($orderedTypes); 
} 

希望這對你有所幫助。

+5

我傷口喜歡把它覆蓋到本地文件夾,這是最好的,因爲這不是一個好的做法。 – chanz

+2

我已經測試過這個,它在magento 1.7.0.2版本中工作正常。 – chanz

+0

非常感謝你的分享。 –

相關問題