我想根据自己的用途自定义Prestashop网络服务,但我不知道如何找到任何教程。我有一个想要从网站检索数据的移动应用程序,但默认的Web服务是无用的。
例如,我希望用他们的图片列出类别(用语言),但似乎我应该调用两种不同的服务来分别检索类别和图像。
假设我想拥有一个类别的JSON数组,类别是一个JSON对象,其中包含这些字段Port = 587
但似乎我应该使用方法得到{id,title,imageUrl}
,之后我可以得到图像一个接一个的方法!
我无法在文档中找到任何有关扩展或自定义Web服务的指南。
答案 0 :(得分:0)
我有点迟了但是:
Prestashop版本需求:> 1.6
如果要自定义Web服务并返回具有JSON格式输出的特定字段。你需要这样做:
<强>第一强>
覆盖:
在 webservice / WebserviceRequest.php 中:将myClassForWs添加到 ressources:
public static function getResources()
{
$resources = parent::getResources();
$resources['myClassForWs'] = array('description' => 'The class','class' => 'myClassForWs');
ksort($resources);
return $resources;
}
}
在 myClassForWs 中:使用您需要的字段重新定义$ webserviceParameters和$ definition:
protected $definition = array(
'table' => 'category',
'primary' => 'id_category',
'multilang' => true,
'multilang_shop' => true,
'fields' => array(
'name' =>array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCatalogName', 'required' => true, 'size' => 128),
'link_rewrite' =>array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isLinkRewrite', 'required' => true, 'size' => 128),
'description' =>array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isCleanHtml'),
),
);
protected $webserviceParameters = array(
'objectsNodeName' =>'categories',
'hidden_fields'=>array('nleft', 'nright', 'groupBox'),
'fields' => array(
'level_depth' => array('setter' => false),
),
'associations' => array(
'images' => array(
'resource' => 'image',
'fields' => array('id' => array())
),
),
);
,然后强>
进入您的管理标签:
<强>最后强>
使用网址访问您的网络服务:
my.prestashop/api/myClassForWs/{id_class}?output_format=**JSON**
它会返回您的数据
我希望它有所帮助。