今天向大家介绍关于 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(出于安全原因,默认情况下禁用异常打印)