4

在 magento 中,当我们使用 REST url 访问数据时, http://localhost/magemto/api/rest/products它以 XML 格式返回。

但作为我的团队要求,我应该以 JSON 格式发送数据以轻松访问 AJAX 调用。我使用 REST 客户端将标头包含为“Content-Type:appilcation/json”。然后它以 JSON 格式返回。但我希望它默认由magento API ..

4

1 回答 1

12

嘿,我确实有一个解决方案,我想和你分享。

首先转到您的 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);
}

希望这对您有所帮助。

于 2012-12-28T10:08:33.997 回答