2

我尝试通过几个 id 从 magento rest api 获取产品。但是不明白如何使它正确。现在我使用这种方法制作过滤器:

api/rest/products/?filter[0][attribute]=entity_id&filter[0][in][0]=564&filter[0][in][1]=563

此过滤器有效,但仅当它由 10 个 id 组成时。如果我从大于 10 的 id 制作过滤器,那么 magento 会给我:

{"messages":{"error":[{"code":401,"message":"oauth_problem=signature_invalid"}]}}

成功请求:

/api/rest/products?filter[0][in][4]=244&filter[0][in][6]=246&filter[0][in][7]=250&filter[0][in][9]=248&filter[0][in][8]=249&filter[0][in][1]=243&dir=asc&filter[0][in][0]=241&filter[0][in][2]=242&filter[0][in][3]=245&filter[0][in][5]=247&order=entity_id&filter[0][attribute]=entity_id

失败请求:

/api/rest/products?filter[0][in][4]=244&filter[0][in][6]=246&filter[0][in][7]=250&filter[0][in][9]=248&filter[0][in][10]=256&filter[0][in][8]=249&filter[0][in][1]=243&dir=asc&filter[0][in][0]=241&filter[0][in][2]=242&filter[0][in][3]=245&filter[0][in][5]=247&order=entity_id&filter[0][attribute]=entity_id

正确的过滤器将如何处理获取请求?

我不在过滤器“from”和“to”中使用 id,因为我的 id 不是范围(不是 1、2、3、4,而是 34、1、99、45)。因此,我将每个 id 用于接收对象。

看来我找到了原因。我使用 python lib rauth 向 magento rest api 发出请求。当我选择签名 HmacSha1Signature 时,就会出现这个问题。在我的案例中使用 HmacSha1Signature 时,似乎 rauth 计算的签名不正确。我尝试使用 RsaSha1Signature 但如果使用此签名,magento 会发送 500 代码。现在我使用 PlaintextSignature 它工作正常。稍后我会发现 rauth 计算签名的问题,因为我需要签名。

4

0 回答 0