【问题标题】:Magento 2 Rest API - PUT method always return "Class ... does not exist"Magento 2 Rest API - PUT 方法总是返回“类...不存在”
【发布时间】:2022-01-27 17:18:43
【问题描述】:
  • 我为 PUT 请求创建了 magento 2 rest api 端点,它总是返回“Class .. does not exist”。

  • PUT 请求中有 2 个参数:

  • 路径参数:id,PUT请求体中的json字符串:data

示例接口:

    /**
 * @param int $id
 * @param mixed $data
 * @return string
 */
public function create($id, $data);

型号:

    public function create($id, $data) {...}

webapi.xml:

    <route url=".../:id/create" method="PUT">
      <service class=".../ExampleInterface" method="create"/>
      <resources>
        <resource ref="anonymous"/>
      </resources>
    </route>

界面和模型已连接,一切都很好。 我的端点与接收相同参数的端点相同,但使用了 POST 方法并且工作正常。当我将其更改为 PUT 时,即使接口和方法中的所有内容都是正确且相同的,第二个参数总是会导致问题。

重要提示:如果我删除这两个参数之一(路径参数或 PUT 请求正文中的参数),则它可以正常工作。但是当body中存在path参数和json字符串的组合时,总是第二个导致错误。

【问题讨论】:

    标签: api rest magento magento2


    【解决方案1】:

    我认为它不喜欢“@param mixed $data”。

    试试 '@param string[] $data' 或 '@param mixed[] $data'

    【讨论】:

      猜你喜欢
      • 2017-04-29
      • 2016-03-31
      • 2014-11-30
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      相关资源
      最近更新 更多