【问题标题】:How to get Response of REST API in JSON format by Default in Magento如何在 Magento 中默认获取 JSON 格式的 REST API 响应
【发布时间】:2012-12-28 08:54:18
【问题描述】:

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

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

【问题讨论】:

    标签: magento oauth oauth-2.0 magento-1.7 magento-1.4


    【解决方案1】:

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

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

    希望对您有所帮助。

    【讨论】:

    • 我很想将其覆盖到本地文件夹中,因为这不是一个好习惯。
    • 我已经对此进行了测试,它在 magento 版本 1.7.0.2 中运行良好
    • 但是你的意思是把这个 request.php 文件移动到 app/core/code/local 的本地文件夹吗??
    • 是搜索google how to override magento model class ,你可以在那里找到,实际上有两种方法,搜索你会得到很多与此相关的帖子
    • 数据显示在浏览器页面中,但不是为 AJAX 调用呈现。我认为这是一个跨域问题..
    猜你喜欢
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 2016-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多