You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopware 6 Admin API如何在响应中获取完整异常信息?

Shopware 6 Admin API 获取完整异常信息的方法

默认情况下,Shopware 6的Admin API无论在开发还是生产环境,返回的异常信息都会被截断——这是出于安全考量,避免泄露系统敏感数据。要获取完整异常信息,有两种可行方案:

方案一:自定义异常处理器(开发环境适用)

Shopware通过\Shopware\Core\Framework\Api\Exception\ApiExceptionHandler类处理API异常并返回截断后的信息。你可以通过重写这个类的getResponseBody方法,让开发环境下的API响应返回完整异常栈:

  • 创建自定义异常处理器类,继承原ApiExceptionHandler
  • 在重写的getResponseBody方法中,判断当前环境为开发模式时,将$exception->getTraceAsString()追加到响应数据中
  • 注册自定义处理器替换默认实现

示例代码片段:

public function getResponseBody(\Throwable $exception, Request $request): array
{
    $response = parent::getResponseBody($exception, $request);
    if ($this->kernel->getEnvironment() === 'dev') {
        $response['trace'] = $exception->getTraceAsString();
    }
    return $response;
}

方案二:查看系统日志(生产环境推荐)

生产环境不建议直接在API响应中暴露完整异常信息,避免安全风险。此时最稳妥的方式是查看Shopware的系统日志:

  • 开发环境日志路径:var/log/dev.log
  • 生产环境日志路径:var/log/prod.log
  • 可通过命令行实时监控日志:tail -f var/log/prod.log,日志中会记录完整的异常栈、请求参数等关键信息

注意事项

如果必须在生产环境通过API返回完整异常,一定要添加严格的权限控制(比如限制仅内部IP访问、验证管理员权限),防止敏感信息泄露。

内容的提问来源于stack exchange,提问作者Abenil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 00:32:34