php – prestashop通过url webservice api创建和更新资源
作者:互联网
我(不幸的是)必须将客户端应用程序编写为prestashop驱动的网站的前端.我需要通过url webservice对资源执行所有CRUD操作,我仍然坚持创建和更新.我很惊讶地发现网上有几个例子,因为prestashop应该是一个广泛使用的cms.但是,到现在为止我来到:
GET http://www.myshop.com/api/myresource/id
获取具有给定id或的资源的xml
GET http://www.myshop.com/api/myresource/?display=full&filter[field]=[value]
过滤结果.我写这篇文章的原因只是因为我不得不与谷歌一起努力获得这些信息,这个过滤器的东西可能会在将来帮助某人.
DELETE http://www.myshop.com/api/myresource/id
删除资源(我想过滤器也在这里工作,但到目前为止还没有尝试)
现在,有人知道如何创建和更新资源吗?我试过了
POST/PUT http://www.myshop.com/api/myresource/
在没有运气的情况下给http字段中的字段值 – http请求,我收到内部服务器错误.不,我没有直接访问服务器所以我不知道抛出了什么错误,我希望它可以解决没有麻烦的网站维护者,我想保存我的弹药.
我在网上找到的唯一有用的资源是this one,我也查看了SO的其他问题,这些问题的建议链接没有帮助.
解决方法:
如果您编辑config / config.inc.php并添加以下内容,您将能够看到响应中的错误(错误)(1by1,当您尝试找出创建失败的原因时,这非常令人沮丧).完成后,请记得注释掉该行.
/*DEBUGGING ON*/
ini_set('display_errors', 'on');
您还需要确保在POST / PUT操作中使用xml =< prestashop> ……< / prestashop>前置数据. (我正在为我的客户端使用C#,因此PHP可能不需要这样做)
如果您使用?schema = synopsis来获取空白的那些,请确保您浏览XML中的任何元素作为占位符并将其删除.例如,您的(产品)将被破坏,但如果你没有.
我还在我的代码中添加了在XML的初始传递中它完全遍历树,查找具有属性not_filterable的任何内容并删除那些节点(再次没有太多文档可用来知道这是否正确).
编辑:基于语言的元素中的另外一个注意事项,请确保您使用CDATA作为元素.
通过执行此操作,我刚刚成功生成了我的产品,所以我希望它有所帮助.我还没有执行现有的更新.
更新:我已经更新到Prestashop的1.5.4.1并开始在我的情况下更新资源产品
更新资源
URI:http:// site / api / products / 1
使用方法=“PUT”
content type =“text / xml”
确保删除任何具有“not_filterable”属性集的元素. (我不明白为什么,但如果你不这样做就行不通)
删除资源
URI:http:// site / api / products / 1
使用方法=“删除”
content type =“application / x-www-form-urlencoded”
我发现你不需要任何身体,所以你可以将ContentLength设置为0.并且probaly不需要设置内容类型,但它可以工作.
标签:php,rest,web-services,prestashop 来源: https://codeday.me/bug/20190709/1409886.html