Magento Rest API中常见的错误HTTP代码

今天向大家介绍关于 Magento Rest API 中常见的 HTTP 错误代码。首先,你需要知道HTTP是什么?HTTP全称是超文本传输协议,是网站默认的协议。当我们使用 HTTP 协议的时候,可能会出现一些错误代码,这些代码被叫做 HTTP 错误代码。

为了更好地理解,下面列出了 Magento 2rest API 中的代码和每个常见错误 HTTP 代码的含义。

HTTP Error 400

  • 常量:Magento\Framework\Webapi\Exception::HTTP_BAD_REQUEST

  • 描述:请求数据无效。

HTTP Error 401

  • 常量: Magento\Framework\Webapi\Exception::HTTP_UNAUTHORIZED

  • 描述:认证失败。

HTTP Error 403

  • 常量: Magento\Framework\Webapi\Exception::HTTP_FORBIDDEN

  • 描述:访问被禁止。

HTTP Error 404

  • 常量:Magento\Framework\Webapi\Exception::HTTP_NOT_FOUND

  • 描述:请求资源未找到。

HTTP Error 405

  • 常量:Magento\Framework\Webapi\Exception::HTTP_METHOD_NOT_ALLOWED

  • 描述:不支持请求中的方法,/ 资源尚未支持。

HTTP Error 406

  • 常量:Magento\Framework\Webapi\Exception::HTTP_NOT_ACCEPTABLE

  • 描述:请求的资源无法接受请求。

HTTP Error 500

  • 常量:Magento\Framework\Webapi\Exception::HTTP_INTERNAL_ERROR

  • 描述:资源内部错误。

接下来,我将举例获取 HTTP 错误代码。

如果你在 API 方法中抛出异常

if (!$productId) {
 
throw new \Magento\Framework\Exception\NoSuchEntityException(__('Requested product doesn\'t exist'));
 
}

这时,将会显示 HTTP 错误代码 404
或者可以使用 Magento 在 Magento\Framework\Exception 下提供的类,还可以使用通用异常类 \Exception:

if (!$productId) {
 
throw new \Exception(__('Requested product doesn\'t exist'));
 
}

确保错误代码始终为 500。

(Magento\Framework\Webapi\Exception::HTTP_INTERNAL_ERROR).

你可能会得到这个错误信息: Exception printing is disabled by default for security reasons(出于安全原因,默认情况下禁用异常打印)

本教程翻译自Mageplaza模块开发系列,其他内容请点击下面链接: