Web Services Prestashop API更新资源错误:修改资源时需要ID

k10s72fa  于 2022-12-19  发布在  其他
关注(0)|答案(1)|浏览(158)
    • 背景:**

我正在尝试更新订单资源的shipping_number,但是,我尝试过的所有组合似乎都失败了。
目前使用的是Prestashop 1.7.8.7版本(截至撰写本文时的最新版本)。
我试图通过启用PrestaShop商店中的WebService功能后可用的rest api更新资源。所有的获取请求工作没有任何问题...
最初,api调用被挂接为使用JSON,而不是默认的XML。但是,在了解到PUT请求只接受XML输入后,我对此进行了更新,但仍然得到不成功的响应。
目前我试图在Postman中完成这项工作,然后再尝试在代码库中进行复制。

    • 在Postman中复制的步骤:**

As per the Prestashop docs for updating a resource: https://devdocs.prestashop-project.org/1.7/webservice/getting-started/#update-a-resource
1.按ID获取订单:[GET:] /api/orders/1?display=full
1.从提取复制响应
1.将响应粘贴到请求正文中
1.将shipping_method节点的值更改为新的/不同的值
1.更新顺序:[PUT:] /api/orders/1

我还通过将ini_set('display_errors', 'on');添加到config/config.inc.php文件中启用了更详细的错误响应消息。这在下面的响应中的附加消息中显示。

    • 最新答复:**
Notice:  Undefined offset: 1 in /webservice/dispatcher.php on line 40

{
    "errors": [
        {
            "code": 90,
            "message": "id is required when modifying a resource"
        }
    ]
}
    • 尝试的其他操作:**

其中一些尝试会导致稍微不同的错误消息(500内部服务器错误等),但仍然失败!
1.将http方法更改为POSTPATCH
1.更新资源端点以指向/orders而不是/orders/1(我尝试更新的特定顺序)
1.将内容类型更改为text而不是xml
1.请求正文中的各种不同XML结构(见下)
x一个一个一个一个x一个一个二个一个x一个一个三个一个
我能在网上找到的唯一的例子看起来都是使用专用的Prestashop WebServivce库,它为他们提供了一个专用的客户端,并允许他们调用edit()函数,所以没有太大的帮助!使用这个库也不是一个选项,因为我的应用程序是用c#编写的。

holgip5t

holgip5t1#

确保在一行中POST整个XML。
我记得有一个类似的问题,由于无法识别/错误的回车在请求。

相关问题